Asp.net mvc 4 mvc-如何从局部视图属性及其父视图中为其赋值

Asp.net mvc 4 mvc-如何从局部视图属性及其父视图中为其赋值,asp.net-mvc-4,asp.net-mvc-partialview,Asp.net Mvc 4,Asp.net Mvc Partialview,我有一个视图a、视图B和视图C 视图C是在视图a和B内部渲染的局部视图: 视图A: <div style="margin-top:20px;"> <div> @Html.Partial("~/Views/_C.cshtml", null, new ViewDataDictionary { { "WithRedirect", "true" } }); </div> </div> if(WithRedirect.E

我有一个视图a、视图B和视图C

视图C是在视图a和B内部渲染的局部视图:

视图A:

<div style="margin-top:20px;">

    <div>
        @Html.Partial("~/Views/_C.cshtml", null, new ViewDataDictionary { { "WithRedirect", "true" } });
    </div>

</div>
if(WithRedirect.Equals(“true”) 返回重定向(返回Url??Url.Action(“索引”、“页面1”); 其他的 返回重定向(返回Url??Url.Action(“索引”、“页面2”)

调试控制器时,
WithRedirect
变量为空字符串

我做错了什么?解决方案是什么?

在局部视图中(
\u C.cshtml
),您可以从
ViewDataDictionary
中读取值,并将其设置为
表单
中的输入字段。提交表单时,此值也将提交。您可以在http post操作方法中设置一个参数,该参数将接收此输入字段值,并使用该参数可以有条件地重定向到第1页或第2页

@model LoginViewModel
@using (Html.BeginForm("Login","Home")) 
{
    <input type="hidden" name="withRedirect" value="@ViewData["WithRedirect"]" />
    @Html.LabelFor(f=>f.Password)
    @Html.TextBoxFor(x=>x.Password )
    <input type="submit" />
}
在局部视图中(
\u C.cshtml
),您可以从
ViewDataDictionary
中读取值,并将其设置为
表单
中的输入字段。提交表单时,此值也将提交。您可以在http post操作方法中设置一个参数,该参数将接收此输入字段值,并使用该参数可以有条件地重定向到第1页或第2页

@model LoginViewModel
@using (Html.BeginForm("Login","Home")) 
{
    <input type="hidden" name="withRedirect" value="@ViewData["WithRedirect"]" />
    @Html.LabelFor(f=>f.Password)
    @Html.TextBoxFor(x=>x.Password )
    <input type="submit" />
}
string withRedirect = this.ViewData.ContainsKey("WithRedirect") ? this.ViewData["WithRedirect"].ToString() : string.Empty;
@model LoginViewModel
@using (Html.BeginForm("Login","Home")) 
{
    <input type="hidden" name="withRedirect" value="@ViewData["WithRedirect"]" />
    @Html.LabelFor(f=>f.Password)
    @Html.TextBoxFor(x=>x.Password )
    <input type="submit" />
}
[HttpPost]
public ActionResult Login (LoginViewModel model,bool withRedirect)
{
   //to do : Do something
   if(withRedirect)
   {
      return RedirectToAction("Index","Page1"); 
   } 
   return RedirectToAction("Index","Page2"); 
}