Asp.net mvc 如何使用绑定前缀?
假设我的db:Product中有这个表 它有Asp.net mvc 如何使用绑定前缀?,asp.net-mvc,asp.net-mvc-2,Asp.net Mvc,Asp.net Mvc 2,假设我的db:Product中有这个表 它有 ProductId ProductName ProductType 现在,无论出于什么原因,我都无法命名我的文本框ProductName和ProductType,所以现在我的视图方法如下所示 public ViewResult Test([Bind(Exclude ="ProductId")] Product) 所以现在通过我的游戏,没有任何东西可以与这个产品相匹配,因为它们有不同的名称 所以我想这就是前缀的作用,但我不知道如何使用它。我也不知道
ProductId
ProductName
ProductType
现在,无论出于什么原因,我都无法命名我的文本框ProductName和ProductType,所以现在我的视图方法如下所示
public ViewResult Test([Bind(Exclude ="ProductId")] Product)
所以现在通过我的游戏,没有任何东西可以与这个产品相匹配,因为它们有不同的名称
所以我想这就是前缀的作用,但我不知道如何使用它。我也不知道如何同时使用它和排除它
有人能给我举个例子吗?如果在你看来你有
<select name="p.ProductType">....</select>
<input type="text" name="p.ProductName" />
您应该注意,如果您将方法参数命名为p,MVC将自动为您执行此操作
如果您试图同时绑定多个实体(例如,两个名称字段),则前缀可能非常有用
要对某些属性使用exclude绑定(即避免人们以伪造形式传递productid),只需将属性名称设置为exclude
public ActionResult([Bind(Prefix="p", Exclude="ProductId")]Product product)
这将确保实体上的ProductId永远不会被设置
如果您想绑定两个完全不同的字段名,例如Type到ProductType,您可以查看自定义模型绑定,或者自己从FormCollection中抓取字段。回答得很好+这帮了我的忙。
public ActionResult([Bind(Prefix="p", Exclude="ProductId")]Product product)