2011-11-01 57 views
0

我在URL中有一些參數,我希望出現在我的MVC3應用程序中的所有頁面的URL中。例如:MVC3 URL參數

mycompany.com/home?param=1 
mycompany.com/cart?param=1 
mycompany.com/logout?param=1 

無論用戶導航到一個新的頁面或提交表單,我怎麼能有我的參數 出現在我的所有網頁?現在我唯一能想到的方法就是重新構建我需要呈現的每個新視圖的URL。 MVC中是否有內置功能來完成此功能?

感謝

回答

0

這聽起來像是你應該在會話存儲,而不是更新所有鏈接添加相同的參數。

+0

thx,可以這樣做,但是我可以我正在努力尋找更多本地MVC解決方案。這是我正在尋找的答案http://forums.asp.net/p/1746918/4718527.aspx/1?p=True&t=634587819228293082 – River

+0

如果你想採取純粹的MVC方法,你可能想看看在這樣做的原因。你正在爲自己製造維護噩夢。如果您需要更改它,則必須查找將參數添加到查詢字符串的所有實例,並更新所有實例。小姐一個,你打破了一些東西。我是否可以建議至少創建一個幫手,並始終使用它?至少它是集中式的。另一個想法是查詢字符串是用戶可以輕鬆操作的東西,這至少是一個麻煩,安全問題也是最糟糕的。 – Luke

0

您可以使用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> 
+0

這是否意味着當我導航到下一頁時,我必須使用參數值更新URL? – River