如何使用mvc返回视图和模型,并保留一些url参数
本文关键字:保留 参数 url 模型 mvc 何使用 返回 视图 | 更新日期: 2023-09-27 18:27:10
我知道我可以用我的模型返回我的视图,如下所示:
public ActionResult Finish()
{
//do stuff
var model = new ModelObject();
//add stuff to model
return View("Execute", model);
}
然而,我在向我的url添加内容时遇到了问题。我需要将带有此参数的视图返回到我的url末尾(它基本上可以帮助我导航到页面上的选项卡):
'?tab=tab-survey'
有什么办法我能做到这一点吗?我尝试使用Redirect和RedirectToAction,但没有任何运气:
//I get an error when I add this
return RedirectToAction("/Task/ControllerName/Execute/" + id + "?tab=tab-survey", model);
实现所需功能的最简单方法是使用ViewBag()
。在控制器中,可以引用ViewBag.Tab = "tab-survey";
,然后在视图中,可以将@ViewBag.Tab
用作javascript中的值项或任何需要的项。
您应该能够使用MVC的"溢出"功能来构建您的URL,如下所示:
return RedirectToAction( new {controller="ControllerName",
action="Execute", id=id, tab="tab-survey"});
任何与路由项匹配的变量都将得到适当的处理,任何与路由值不匹配的变量将被附加到url的末尾。
如果你不介意使用AJAX,你可以在成功回调中这样做:
$.get("/Controller/Action", function(data) {
//do something with data
window.location.href = "/Task/Controller/Execut?tab=tab-survey"
});