我的意思是 比如Job/JobDetail?id= 地址 如何被cs的controller接收到 从而用对应的方法处理
时间: 2024-10-24 21:10:10 浏览: 7
在C# ASP.NET中,当你有一个URL结构如`/Job/JobDetail?id=123`,表示获取某个Job的详细信息,这样的请求会被路由到相应的Controller和Action处理。通常,这涉及到两个关键部分:路由配置和Controller方法的定义。
首先,你需要在`Startup.cs`的`Configure(IApplicationBuilder app)`方法中设置路由规则。对于这种需求,可以创建一个基于ID的路由映射:
```csharp
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers(). routes.Add路线(
name: "jobDetails",
pattern: "/Job/JobDetail/{id}",
defaults: new { controller = "Job", action = "JobDetail" });
});
```
这里的`{id}`是一个动态值,会被路由系统解析并传递给控制器方法作为参数。
接着,在`Controllers/JobController.cs`文件中,创建一个名为`JobDetail`的方法,接收`int id`作为输入参数:
```csharp
public class JobController : ControllerBase
{
[HttpGet("{id}")]
public ActionResult<JobDetail> JobDetail(int id)
{
var jobDetail = _repository.GetJobDetailById(id); // 假设这是你的数据访问层
if (jobDetail != null)
{
return Ok(jobDetail);
}
else
{
return NotFound();
}
}
}
```
在这个方法中,`[HttpGet]`表明这是一个HTTP GET请求,`"{id}"`是路由参数,当接收到`/Job/JobDetail/123`这样的请求时,`id`将被赋值为123,并调用`JobDetail`方法处理。
阅读全文