MVC 新手问题重新活页夹。假设我有两个强类型的部分动作,它们碰巧有一个同名的模型属性,并在同一个包含页面中呈现,即:
Class Friend {string Name {get; set ;} DateTime DOB {get; set ;}}
Class Foe {string Name {get; set ;} string ReasonForDislike {get; set ;}}
两个部分都有一行:
<%= Html.TextBoxFor(model => model.Name) %>
以及相关的控制器动作:
public ActionResult SaveFriend(Friend friend)
public ActionResult SaveFoe(Foe foe)
我的问题是两者都会在我的包含页面上呈现相同的 id(当然,由于很多原因很糟糕)。我知道允许我添加前缀的 [Bind] 属性,从而产生代码:
public ActionResult SaveFriend([Bind(Prefix = “friend”)] Friend friend)
<%= Html.TextBox("friend.Name", Model. Name) %> //Boo, no TextBoxFor :(
但这仍然没有削减它。我几乎可以容忍强类型 TextBoxFor 助手的丢失,但我还没有让客户端验证使用前缀:我尝试过:
<%= Html.ValidationMessage("friend.Name") %>
...以及我能想到的所有其他变体。
我似乎需要模型知道两个方向的前缀,但绑定仅在映射入站请求时适用。这似乎(对我来说)是一个常见的场景,但我正在努力寻找那里的例子。我错过了什么!
提前致谢。