C# 在MVC中,为什么我的控制器需要接收一个;新{id=restaurant.id}";,而不是;餐厅Id;?两者都不是简单的int';s
因此,这里我的mvc控制器方法将int-id作为参数。我想知道为什么需要新的“{id=restaurant.id}”,而“restaurant.id”是不够的C# 在MVC中,为什么我的控制器需要接收一个;新{id=restaurant.id}";,而不是;餐厅Id;?两者都不是简单的int';s,c#,.net,model-view-controller,C#,.net,Model View Controller,因此,这里我的mvc控制器方法将int-id作为参数。我想知道为什么需要新的“{id=restaurant.id}”,而“restaurant.id”是不够的 [HttpPost] [ValidateAntiForgeryToken] public ActionResult Edit(Restaurant restaurant) { if (ModelState.IsValid) { db.Update(resta
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(Restaurant restaurant)
{
if (ModelState.IsValid)
{
db.Update(restaurant);
return RedirectToAction("Details", new { id = restaurant.Id });
}
return View(restaurant);
}
这是因为MVC需要一个从中检索值并绑定到动作参数的对象。换句话说,你可以做:
return RedirectToAction("Details", restaurant);
Mvc将对对象进行爬网,以查找与操作参数的名称和类型匹配的属性,因此应绑定到餐厅的“Id”属性。
但是,如果您只是传递了餐厅的Id,MVC将对餐厅Id属性的类型进行爬网
希望这有帮助。如果是,请将其标记为答案;) 如果你这样做,结果会怎样?