C# ASP.NET核心MVC从查询中获取模型属性的属性
我有这些课程C# ASP.NET核心MVC从查询中获取模型属性的属性,c#,asp.net-mvc,asp.net-core,C#,Asp.net Mvc,Asp.net Core,我有这些课程 public Customer { public int ID { get; set; } // [...] some other properties } public CustomerDetails { public Customer Customer { get; set; } // [...] some other properties } 我有这个控制器的动作 [HttpGet] [Route("{customer.id}&q
public Customer
{
public int ID { get; set; }
// [...] some other properties
}
public CustomerDetails
{
public Customer Customer { get; set; }
// [...] some other properties
}
我有这个控制器的动作
[HttpGet]
[Route("{customer.id}")]
public async Task<IActionResult> Details([FromQuery]CustomerDetails model)
{
// [...]
}
[HttpGet]
[路由(“{customer.id}”)]
公共异步任务详细信息([FromQuery]CustomerDetails模型)
{
// [...]
}
我还尝试了[Route(“{model.customer.id}”)]
和[Route({id}”)]
,并将[FromQuery]
添加到CustomerDetails.customer
但是model.customer.id
总是0
该操作的路径应为/customers/{model.customer.id}。我怎样才能做到这一点呢?对于url
/customers/details/5
将您的操作路由更改为:
[Route("~/customers/details/{customerId}")]
public async Task<IActionResult> Details(int customerId)
{
// [...]
}
您需要此路由属性
[Route("~/customers/{customerId}")]
public async Task<IActionResult> Details(int customerId)
{
// [...]
}
我们也会工作的
[Route("~/customers/details/{customerId}")]
public async Task<IActionResult> Details(CustomerDetails model)
{
// [...]
}
[路线(“~/customers/details/{customerId}”)]
公共异步任务详细信息(CustomerDetails模型)
{
// [...]
}
我还尝试了[Route(“{model.customer.id}”)]和[Route({id}”)]
并将[FromQuery]添加到CustomerDetails中
model.customer.id始终为0
该操作的路径应为/customers/{model.customer.id}。怎么
我能做到这一点吗
它正在使用/customers/details?customer.id=5,但我希望它能够 be/客户/5 根据您的代码和描述,我想您可能希望从route而不是查询中获取参数 请尝试按以下方式修改您的代码:
[FromRoute]
属性
[HttpGet]
[Route("Test/Details/{customerid}")]
public IActionResult Details([FromRoute]int customerid)
{
// [...]
ViewBag.CustomerId = customerid;
return View();
}
@{
ViewData["Title"] = "Details";
}
<h1>Details</h1>
@ViewBag.CustomerId
@{
ViewData[“标题”]=“详细信息”;
}
细节
@ViewBag.CustomerId
结果如下:
你能分享你用来调用GET操作的Url吗?它与/customers/details?customer.id=5一起工作,但我希望它是/customers/5他希望路线是
/customers/5
而不是/customers/details/5
谢谢。我很感激。
[HttpGet]
[Route("Test/Details/{customerid}")]
public IActionResult Details([FromRoute]int customerid)
{
// [...]
ViewBag.CustomerId = customerid;
return View();
}
@{
ViewData["Title"] = "Details";
}
<h1>Details</h1>
@ViewBag.CustomerId