当主页未能通过模型数据验证时,我有一个意外的回帖返回到 Html.RenderPartial() 操作。如果模型验证没有错误,页面将返回到预期的控制器操作。有没有人遇到过这个问题,他们使用了什么解决方案?
进一步说明:
我有一个 MVC .cshtml 视图,它的回发设置如下:
@using (Html.BeginForm("Profile", "User", FormMethod.Post))
{
// html code and stuff..
@{ Html.RenderAction("ImageUpload", "User"); }
<input type="submit" value="Save" />
}
当我单击“保存”按钮时,页面应返回到方法User/Profile
中的设置Html.BeginForm
:@using (Html.BeginForm("Profile", "User", FormMethod.Post))
.
当我进行回发并且模型验证没有错误时,该页面按预期工作......它User/Profile
按预期发布。
但是,当主视图模型出现验证错误时,页面会发回Html.RederPartial
操作:@{ Html.RenderAction("ImageUpload", "User"); }
. 换句话说,User/Profile
它不会像预期的那样发布到User/ImageUpload
.
视图模型的快照(提供给用户/配置文件的模型)
[Required]
[StringLength(1000, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 20)]
[DataType(DataType.Text)]
[Display(Name = "About Me* (Write up to 1000 characters about yourself)")]
public virtual string Summary { get; set; }
public ActionResult Profile(UserModel userModel)
{
if (ModelState.IsValid)
{
//DO STUFF
}
// If we got this far, something failed, redisplay form
return View(userModel);
}
如果用户通过在属性(最小长度验证参数)中输入少于 20 个字符而无法满足模型验证,Summary
则回帖将转到Html.RenderPartial()
而不是预期的Html.BeginForm("Profile", "User", FormMethod.Post)
.
有没有人遇到过这个问题以及如何解决的任何想法?