相关疑难解决方法(0)

ASP.NET MVC 2 - ViewModel前缀

我希望在我的视图中使用RenderPartial两次,并关联不同的模型.问题是两个模型中都存在一些属性(昵称,密码).它们没有前缀,所以即使id或名称在输出中也是相同的.现在,如果我有昵称或密码的模型错误,则两个字段都会突出显示.

主要观点:

<div>
    <% Html.RenderPartial("Register", Model.RegisterModel); %>
</div>
<div>
    <% Html.RenderPartial("Login", Model.LoginModel); %>
</div>
Run Code Online (Sandbox Code Playgroud)

登录PartialView:

<% using (Html.BeginForm("Login", "Member")) { %>
<fieldset>
    <legend>Login</legend>
    <p>
        <%= Html.LabelFor(x => x.Nickname) %>
        <%= Html.TextBoxFor(x => x.Nickname) %>
    </p>
    <p>
        <%= Html.LabelFor(x => x.Password) %>
        <%= Html.PasswordFor(x => x.Password) %>
    </p>    
    <input type="submit" value="Login" />
</fieldset>
<% } %>
Run Code Online (Sandbox Code Playgroud)

注册PartialView:

<% using (Html.BeginForm("Register", "Member")) { %>
<fieldset>
    <legend>Register</legend>
    <p>
        <%= Html.LabelFor(x => x.Nickname) %>
        <%= Html.TextBoxFor(x => x.Nickname) %>
    </p>
    <p>
        <%= Html.LabelFor(x => …
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-mvc modelbinders viewmodel asp.net-mvc-2

12
推荐指数
2
解决办法
6043
查看次数

强制EditorFor在视图上使用类名为输入项添加前缀?

我有一个EditorFor:

<%: Html.EditorFor(model => model.Client, "ClientTemplate", new { editing = false })%>
Run Code Online (Sandbox Code Playgroud)

这将绑定到视图正常(如预期)但在模型发布时不会绑定绑定.这是因为表单ID没有以"客户端"作为前缀.

通常在这种情况下我只是传入模型,然后将输入绑定到模板中的model.Client.PropertyName,但在这种情况下这不是一个选项,因为模板用于两个不同的视图模型(有客户端).

有关正确绑定的任何建议吗?

非常感谢,Kohan.


附录

这似乎是我的一个误解,我现在明白这个问题是fluentHtml在EditorFor Templates中不起作用.(同样适用于此修复,因为事实证明不需要,因为如果我用正常的mvc html助手替换fluentHtml,EditorFor会自动为我添加前缀)

c# asp.net-mvc binding editorfor asp.net-mvc-3

5
推荐指数
2
解决办法
6152
查看次数