我在URL中有一些参数,我希望出现在我的MVC3应用程序中的所有页面的URL中。例如:MVC3 URL参数
mycompany.com/home?param=1
mycompany.com/cart?param=1
mycompany.com/logout?param=1
无论用户导航到一个新的页面或提交表单,我怎么能有我的参数 出现在我的所有网页?现在我唯一能想到的方法就是重新构建我需要呈现的每个新视图的URL。 MVC中是否有内置功能来完成此功能?
感谢
我在URL中有一些参数,我希望出现在我的MVC3应用程序中的所有页面的URL中。例如:MVC3 URL参数
mycompany.com/home?param=1
mycompany.com/cart?param=1
mycompany.com/logout?param=1
无论用户导航到一个新的页面或提交表单,我怎么能有我的参数 出现在我的所有网页?现在我唯一能想到的方法就是重新构建我需要呈现的每个新视图的URL。 MVC中是否有内置功能来完成此功能?
感谢
这听起来像是你应该在会话存储,而不是更新所有链接添加相同的参数。
您可以使用Session变量作为其他海报的建议,或者您可以使用包含此静态参数值的基本视图模型。
所以你的基本的看法是这样的:
public class BaseViewModel
{
public static int ParamValue = 1;
}
那么在您使用每个视图中的每个视图模型,你有这样的事情:
public class PageViewModel : BaseViewModel
{
// properties
}
这样,在每个视图中,只要需要访问它就可以引用@ Model.ParamValue:
@Model Namespace.PageViewModel
My param value is <b>@Model.ParamValue</b>
这是否意味着当我导航到下一页时,我必须使用参数值更新URL? – River
thx,可以这样做,但是我可以我正在努力寻找更多本地MVC解决方案。这是我正在寻找的答案http://forums.asp.net/p/1746918/4718527.aspx/1?p=True&t=634587819228293082 – River
如果你想采取纯粹的MVC方法,你可能想看看在这样做的原因。你正在为自己制造维护噩梦。如果您需要更改它,则必须查找将参数添加到查询字符串的所有实例,并更新所有实例。小姐一个,你打破了一些东西。我是否可以建议至少创建一个帮手,并始终使用它?至少它是集中式的。另一个想法是查询字符串是用户可以轻松操作的东西,这至少是一个麻烦,安全问题也是最糟糕的。 – Luke