0
我在理解asp.net mvc中的查询字符串和路由概念时感到困惑,如果有人请帮忙,我将不胜感激。如何在asp.net mvc布局页面中使用查询字符串
我的问题是:
我有一个登录页面,用户将进入用户名,密码和ID。成功登录后,我喜欢带上Id并将它传递给我的Profile页面。现在,个人资料页面是布局页面的一部分以及其他两个链接。
<nav class="main">
<ul class="menu" >
<li>@Html.ActionLink("Profile", MVC.Profile.Index(), new { Id = Request.QueryString["Id"].ToString() })</li>
<li>@Html.ActionLink("Configuration", MVC.Configuration.Index(),new { Id = Request.QueryString["Id"].ToString() })</li>
<li>@Html.ActionLink("Transaction", MVC.Transaction.Index(), new { Id = Request.QueryString["Id"].ToString() })</li>
</ul>
</nav>
从我的登录页面我使用以下代码将用户重定向到配置文件页面。
return RedirectToAction(“Index”,“Profile”,new {Id = viewModel.Id});
现在我怎么能同一个值传递给配置和交易页面,他们是在布局page.I想用的Request.QueryString像下面的正义行动链接:
new { Id = Request.QueryString["Id"].ToString()
但这抛出对象引用异常。
我的路由是这样的:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Login", action = "Index", id = UrlParameter.Optional });
在此先感谢。
你好,谢谢,是我的配置文件控制器以id为参数。但这些操作链接是布局页面的一部分。你是否建议我从布局页面中删除这些链接并将其放入每个单独的页面? – Vin05
@ Vin05不可以。您可以在布局页面中做同样的事情,它的工作原理也是一样的。你的'模型'将充满你从你的控制器'View(id)'发送的任何数据。 – lbrahim
@ Vin05我已经在这里上传了一个示例应用程序:http://www.sendspace.com/file/crarpc – lbrahim