加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET MVC发布模型ID的更好方法是什么?

发布时间:2020-12-16 04:37:22 所属栏目:asp.Net 来源:网络整理
导读:我有一个ViewModel我绑定到一个视图: ProductViewModel model = Mapper.MapProduct,ProductViewModel(product);return View(model); 视图(和视图模型)用于编辑产品,因此ProductViewModel具有与数据库中的ID对应的ID属性. 并将ID发回控制器我在视图中以我的
我有一个ViewModel我绑定到一个视图:
ProductViewModel model = Mapper.Map<Product,ProductViewModel>(product);
return View(model);

视图(和视图模型)用于编辑产品,因此ProductViewModel具有与数据库中的ID对应的ID属性.

并将ID发回控制器我在视图中以我的形式执行此操作:

@Html.HiddenFor(x => x.Id)

即使这样可行 – 我想知道是否有更好的方法将ID发回控制器?路线值可能?或者这是一个相当标准的模式/方法?

解决方法

如果我有一个GET操作,其中包含我的路由中的ID:/ Products / Edit / 1,那么我通常将其保留为路由值:
[HttpPost]
public ActionResult Edit(int id,EditProductViewModel model)

不过,这纯粹是我的偏好.没有正确或错误的方法.

这个方法的好处是你不再需要使用隐藏值传递它,因为它是URL的一部分.实际上,如果你确实用隐藏值传递它,我相信它会被忽略.

或者,由于id是路由的一部分,因此您甚至不需要具有单独的参数:

[HttpPost]
public ActionResult Edit(EditProductViewModel model)

public class EditProductViewModel 
{
    public int Id { get; set; }
}

同样,这纯粹是一种偏好.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读