C# MVC值未发回控制器
这很奇怪,至少我认为是这样。我有一个简单的密码更改表单,它有一个控件,用于获取用户输入的密码。现在,问题是无论用户输入什么,视图都只回发一个空字符串 这是我视图上的控件C# MVC值未发回控制器,c#,asp.net-mvc,C#,Asp.net Mvc,这很奇怪,至少我认为是这样。我有一个简单的密码更改表单,它有一个控件,用于获取用户输入的密码。现在,问题是无论用户输入什么,视图都只回发一个空字符串 这是我视图上的控件 @Html.PasswordFor(model => model.Password) 模型属性: [Required] [DataType(DataType.Password)] [StringLength(20, MinimumLength = 10)] [Display(Name = "Password")] pub
@Html.PasswordFor(model => model.Password)
模型属性:
[Required]
[DataType(DataType.Password)]
[StringLength(20, MinimumLength = 10)]
[Display(Name = "Password")]
public string Password { get; set; }
代码:
我所尝试的:
fwiw,它一直工作正常,直到几天前,视图或控制器中的代码没有任何更改 向密码帮助器添加一个参数,如下所示:
@Html.PasswordFor(model => model.Password,new{@name="mypassword"})
然后将此参数添加到动作方法中
public ActionResult Change(User model,string mypassword)
这会有用的!但这不是一个好办法。
如果你想把它做好,你必须确保你做的模型绑定正确。我知道这听起来很愚蠢。但这就是解决问题的方法,以防其他人也面临同样的问题: 1) 在每篇文章中,我在视图中的password属性中添加了新的{value=Model.CurrentPassword})
2) 我故意在GET方法中将密码设置为“null”能否显示您的视图您在此处显示的代码运行良好。如果您在POST方法中声明
model.Password
为null
,那么这是因为您没有向我们展示代码(缓存与此无关,也与您使用的HtmlHelper无关),下面是一些更多信息。同一视图中还有另一个字段,它接受用户输入以确认密码。它具有相同的验证规则,并且与初始密码字段位于相同的div中。那个人正确地发布了密码!另外,model.password不是空的,它总是一个空字符串。Peter,我不确定是否可以在这里发布整个视图。Stephen,这就是get和post方法的全部内容,我没有隐藏任何代码。我知道这很奇怪,但在来这里之前我用谷歌搜索了一下,搔了搔头。new{@name=“mypassword”}
不会更改输入的name
属性,并且参数string mypassword
在POST方法中总是null
。这会有用的!不,不会的。
public ActionResult Change(User model,string mypassword)