我在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