重定向到动作asp.net MVC

时间:2016-08-11 18:54:47

标签: asp.net-mvc

我想在执行create method

时重定向到一个动作

所以create方法会返回:

  return Json(new 
             {
                 Data = base.RenderView("_Forme ", model),
                 Message = (string)TempData[TEMP_DATA_MESSAGE_KEY],
                 Result = (AjaxResultType)TempData[TEMP_DATA_CODE_KEY]

             }, JsonRequestBehavior.AllowGet);

        }

布局页面:

      <div> @Html.Partial("_Forme") </div>
         @if (@Model.nouveau==false)
            {
               <div> @Html.Partial("_Onglet") </div>
                <div> @Html.Partial("_Details") </div>
            }

**在视图中:_Forme.cshtml **

<a href="@Url.Action("Create", "Uneform")"

     @if (Model.nouveau==true)
         { Create}
        {  Update }
 </a>

我希望能够重新刷新布局页面并显示所有部分视图。 我已经尝试使用javascript重定向到操作无效,任何帮助

1 个答案:

答案 0 :(得分:0)

如果您只想刷新布局页面的某些部分,请将其包装在容器div中并进行ajax调用以获取该区域的新标记

<div id="updatable">
@if (@Model.nouveau==false)
{
  <div> @Html.Partial("_Onglet") </div>
  <div> @Html.Partial("_Details") </div>
}
</div>

在您的ajax电话success事件中,您可以使用$.load方法

$("#updatable").load("/Home/GetUpdatedHeader");

假设GetUpdatedHeader动作方法返回一个局部视图,其中包含其他2个局部视图。

如果您只是想重新加载同一页面,可以在javascript中执行此操作。

window.location.href = window.location.href;

你可以在你的ajax电话success活动中这样做。

如果您想重定向到其他操作/页面

window.location.href ="/Home/Index"; //Replace this value with your url

您也可以在json响应中发送新页面的网址(您可以使用UrlHelper构建网址)并将其用于重定向。