0

当主页未能通过模型​​数据验证时,我有一个意外的回帖返回到 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).

有没有人遇到过这个问题以及如何解决的任何想法?

4

0 回答 0