Asp.net mvc 2 脱脂粘合剂的问题(可能很简单)
我正在构建ASP.NET MVC 2应用程序,并且有一个包含以下操作的控制器:Asp.net mvc 2 脱脂粘合剂的问题(可能很简单),asp.net-mvc-2,defaultmodelbinder,strongly-typed-view,Asp.net Mvc 2,Defaultmodelbinder,Strongly Typed View,我正在构建ASP.NET MVC 2应用程序,并且有一个包含以下操作的控制器: public ActionResult Edit() { ... } [AcceptVerbs(HttpVerbs.Post)] public ActionResult Edit(EditUser user) { ... } 为此,我得到了一个stronge类型的视图,如下所示: <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shar
public ActionResult Edit()
{
...
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(EditUser user)
{
...
}
为此,我得到了一个stronge类型的视图,如下所示:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/MasterPages/DefaultMasterPage.Master" Inherits="System.Web.Mvc.ViewPage<MyApp.Views.ViewClasses.EditUser>" %>
<%@ Import Namespace="MyApp.Views.Helpers" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<% Html.EnableClientValidation(); %>
<% using (Html.BeginForm("Edit", "Account", FormMethod.Post, new { enctype = "multipart/form-data", @id = "edit_account" }))
{%>
<%: Html.LabelFor(model => model.User.UserEmail, false) %>
<%: Html.TextBoxFor(model => model.User.UserEmail, new { @class = "tb1" })%>
...
<% } %>
</asp:Content>
model.User.UserEmail,false)%%>
model.User.UserEmail,新的{@class=“tb1”})%>
...
当点击提交按钮(代码中未显示)时,将点击公共ActionResult编辑(EditUser用户)操作,但用户对象将不包含任何数据
这是html的一部分的外观:
<div class="controlTitleContainer"><div class="text"><label for="User_UserEmail">Mailadress</label></div></div>
<input type="text" value="" name="User.UserEmail" id="User_UserEmail" class="tb1">
邮件地址
这意味着输入指向正确的属性
值得一提的是,我使用数据注释来验证发送到动作的对象,但即使有几个requre字段,模型也始终有效
任何idé为什么会发生这种情况?您尚未显示您的模型,但请确保它包含带有getter和setter以及默认无参数构造函数的公共属性。例如:
public class EditUser
{
public UserModel User { get; set; }
}
public class UserModel
{
[Required]
public string UserEmail { get; set; }
}
最后,尝试将操作参数重命名为除user
之外的其他参数(仅用于测试):
将参数名改为u而不是user有效吗?为什么?
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(EditUser u)
{
...
}