Asp.net MVC部分视图模型状态错误

Asp.net MVC部分视图模型状态错误,asp.net,model-view-controller,partial-views,modelstate,addmodelerror,Asp.net,Model View Controller,Partial Views,Modelstate,Addmodelerror,我无法将模型状态错误从控制器传递到局部视图 我有两个部分视图的索引页-注册和登录。如果注册失败,我会为Username属性设置一个model错误,并将浏览器重定向到TempData中带有SignUpModel的索引 模型内容被正确传达,我看到用户名字段在失败的工作后被预先填充。但是,我没有看到错误消息 索引中的ViewData字典为空。并且索引的ModelState为空 主视图 <h2>Sign Up</h2> @Html.Partial("SignUp"

我无法将模型状态错误从控制器传递到局部视图

我有两个部分视图的索引页-注册和登录。如果注册失败,我会为Username属性设置一个model错误,并将浏览器重定向到TempData中带有SignUpModel的索引

模型内容被正确传达,我看到用户名字段在失败的工作后被预先填充。但是,我没有看到错误消息

索引中的ViewData字典为空。并且索引的ModelState为空

主视图

<h2>Sign Up</h2>
        @Html.Partial("SignUp", TempData["SignUpModel"])
<h2>Sign In</h2>
        @Html.Partial("Login", TempData["LoginModel"])

查看为
TextBoxFor(m=>m.Username)
生成的html,看看您是否绑定到了正确的控件名Yes I am。模型数据很好地通过了测试。但是,modelstate将丢失。如果
modelstate
无效,则返回视图。重定向不会保留来自
ModelState
(这是当前控制器的属性)的值,但它是一个局部视图。如果我返回视图,它只呈现部分内容,父视图的所有内容都消失了。有没有办法在HomeController/Index上设置ModelState?“return HomeController.Index()”会导致问题吗?
@model WebApp1.Models.SignUpModel
@using (Html.BeginForm("SignUp", "Account"))
{
<p>
    @Html.TextBoxFor(m => m.Username)
    @Html.ValidationMessageFor(m => m.Username)
</p>
<p>
    @Html.PasswordFor(m => m.Password)
    @Html.ValidationMessageFor(m => m.Password)
</p>
<button type="submit">Sign Up</button>
}
    [HttpPost]
    public ActionResult SignUp(Models.SignUpModel model)
    {
        if (ModelState.IsValid)
        {
            /* do something */
            if (success)
            {
                /* do something */
                return Redirect(Url.Action("Index", "Home"));
            }
            else
            {
                ModelState.AddModelError("Username", "SomeReason");
                TempData["SignUpModel"] = model;
                return Redirect(Url.Action("Index", "Home"));
            }
        }
        else
        {
            TempData["SignUpModel"] = model;
            return Redirect(Url.Action("Index", "Home"));
        }
    }