当我的用户导航到此视图localhost/Keyword/MainView
并显示包含表单的部分视图时,我希望部分视图的控制器操作能够看到MainView的URL,而不是局部视图,并刷新它。
所以,如果我有这样的观点(MainView.cshtml
):
@{
Layout = "";
}
<div class="form-horizontal">
<div class="row">
<div class="col-md-3">
<div id="keywordGroupList">
@{ Html.RenderAction("_KeywordGroupList", "Keyword"); }
</div>
<div id="keywordGroupCreate">
@{ Html.RenderAction("_KeywordGroupCreate", "Keyword"); }
</div>
</div>
<div id="keywordGroupEdit" class="col-md-9">
</div>
</div>
</div>
我的部分观点(_KeywordGroupCreate.cshtml
):
@using System.Collections
@model PublicationSystem.Model.KeywordGroup
@{
Layout = "";
}
@using (Html.BeginForm
(
"_KeywordGroupCreate",
"Keyword",
FormMethod.Post,
new { id = "keywordGroupCreateForm" }
)
)
{
@Html.AntiForgeryToken()
//...
}
我希望控制器中的_KeywordGroupCreate操作执行以下操作:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult _KeywordGroupCreate(KeywordGroup model)
{
db.KeywordGroup.Add(model);
//return View();
return RedirectToLocal(Request.Url.AbsolutePath);
}
public ActionResult RedirectToLocal(string returnUrl)
{
if (Url.IsLocalUrl(returnUrl))
{
return Redirect(returnUrl);
}
return RedirectToAction("Index", "Submission");
}
但是现在Request.Url.AbsolutePath
回来了&#39;〜/ keyword / _keywordgroupcreate / f12345cf-xxxx-yyyy-zzzz-000000000000&#39;
如何获取完整/父级/顶级网址localhost/Keyword/MainView
?
更新
我想确定父视图的原因是因为我可以在其他地方使用这个局部视图。因此,在此示例中,父视图为MainView.cshtml
,但我可能还希望在UserKeywords.cshtml
中使用部分视图。所以,我想我要问的是启用部分视图的提交/操作来刷新父视图,无论父视图是什么。
答案 0 :(得分:0)
为什么不重定向主视图操作?
而不是:
return RedirectToLocal(Request.Url.AbsolutePath);
为什么不:
return RedirectToAction("MainView", "Keyword");
也许我没问题。
答案 1 :(得分:0)
我需要Request.UrlReferrer.AbsolutePath
答案 2 :(得分:-1)
更改部分视图(_KeywordGroupCreate),将网址添加为routeValues:
@using System.Collections
@model MVCApp.Controllers.KeywordGroup
@{
Layout = "";
}
@using (Html.BeginForm
(
"_KeywordGroupCreate",
"Keyword",
new { url = Request.Url.AbsoluteUri },
FormMethod.Post,
new { id = "keywordGroupCreateForm" }
)
)
{
...
}
并获取动作控制器帖子的值:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult _KeywordGroupCreate(KeywordGroup model, string url)
{
这对你有用,别忘了投票!