Gre*_*reg 8 asp.net asp.net-mvc post
我有一个ViewModel我绑定到一个视图:
ProductViewModel model = Mapper.Map<Product, ProductViewModel>(product);
return View(model);
Run Code Online (Sandbox Code Playgroud)
视图(和视图模型)用于编辑,Product因此ProductViewModel具有与数据库中的ID对应的ID属性.
并将ID发送回Controller我在视图中以我的形式执行此操作:
@Html.HiddenFor(x => x.Id)
Run Code Online (Sandbox Code Playgroud)
即使这有效 - 我想知道是否有更好的方法将ID发回控制器?路线值可能吗?或者这是一个相当标准的模式/方法?
Dis*_*ile 11
如果我有一个包含我的路由中的ID的GET操作:/Products/Edit/1那么我通常将其保留为路由值:
[HttpPost]
public ActionResult Edit(int id, EditProductViewModel model)
Run Code Online (Sandbox Code Playgroud)
不过,这纯粹是我的偏好.没有正确或错误的方法.
这个方法的好处是你不再需要使用隐藏值传递它,因为它是URL的一部分.实际上,如果你确实用隐藏值传递它,我相信它会被忽略.
或者,由于id是路由的一部分,因此您甚至不需要具有单独的参数:
[HttpPost]
public ActionResult Edit(EditProductViewModel model)
public class EditProductViewModel
{
public int Id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
同样,这纯粹是一种偏好.
| 归档时间: |
|
| 查看次数: |
6343 次 |
| 最近记录: |