我在MVC中有一个控制器,在成功创建命令之后需要将视图重定向到由jquery创建的联系人选项卡。这是我对控制器的看法:
[HttpPost]
public ActionResult Create(Contact newContact, int id)
{
try
{
if (ModelState.IsValid)
{
gogoDB.AddToContacts(newContact);
gogoDB.SaveChanges();
return RedirectToAction("Index" + "/" + id, "Client");
}
else
{
return View(newContact);
}
}
catch
{
return View(newContact);
}
我尝试重定向到的网址是
http://localhost:xxxxx/Client/Index/2#contacts
当前代码ReturnToAction(“Index”+“/”+ id,Client“)重定向到
http://localhost:xxxxx/Client/Index/2
这不是我想要的。我也尝试过Redirect(“Client / Index /”+ id +“#contacts”),但我得到的网址是这样的:
http://localhost:xxxxx/Contact/Create/Client/Index/2#contacts
正如您所看到的,问题是我正在从联系人控制器内部调用使用客户端控制器生成的页面。 Id适用于所有示例。
请帮忙!
答案 0 :(得分:0)
我认为你可以做那样的事情。
查看强>
$('#SpecificRedirectTest').click(function() {
window.location="/Controller/Index?Id="+ $('myId').val() +"&redirect2Tab=true";
});
<强>控制器强>
public ActionResult Index (int Id , bool? redirect2Tab)
{
var client = this._myService.GetById (Id);
var fvm = this.EditClientFormViewModel (client, MyTabs.EditTab);
if (redirect2Tab.HasValue) {
if (redirect2Tab.Value) {
fvm = this.EditClientFormViewModel (client, MyTabs.SalesHistoryTab);
}
}
return View("ViewEdit", fvm);
}