我認爲這比其他任何問題都更「風格」。「正確」的方式將控制權傳遞給新頁面?
我有一個MVC應用程序,其中包含一個主頁面,用戶輸入搜索條件以及一個列表頁面,其中顯示與條件匹配的項目列表。
當用戶請求的主網頁上的搜索,MainPage.cshtml有這樣的代碼來調用ListPageController生成新的一頁:
var ParamString =
"Param1=" + Param1
+ "+Param2=" + Param2
+ "+Param3=" + Param3
+ "+Param4=" + Param4
+ "+Param5=" + Param5;
window.open(encodeURI("/ListPage/ShowList?" + ParamString), "_self");
這裏是ListPageController.cs爲ShowList代碼:
public ActionResult ShowList
(
String p_Param1
, String p_Param2
, String p_Param3
, String p_Param4
, String p_Param5
)
{
ListPageModel M = new ListPageModel;
M.Param1 = p_Param1;
M.Param1 = p_Param2;
M.Param1 = p_Param3;
M.Param1 = p_Param4;
M.Param1 = p_Param5;
return View("ListPage", M);
}
ListPage.cshtml然後通過使用指定參數的jQuery Ajax調用獲取數據。
正在使用window.open與一串參數「正確」的方式來做到這一點?如果有大量的參數而不是5個,那麼這會不會使URL變得相當大?
或者,例如,窗口打開的調用應該在ListPageController中調用,例如jQuery .post調用?
如果參數+ url可能超過2000個字符,您應該創建一個隱藏表單並提交它發佈到頁面(如果您希望結果成爲新頁面)。除非您將.post的結果專門添加到當前頁面,否則'.post'不會引入新內容。 –
還記得過去,當您將查詢字符串的搜索字詞傳遞給某個帶有SQL查詢的腳本嗎?而且你會生成一些表格標籤或其他東西,而且它們都可以工作,每個人都會知道發生了什麼事情?我懷念那些日子。 CGI腳本,表格,SQL ......你知道你在哪裏。那是編程,孩子們。現在它是QVC或所有模型。無論如何。晚餐吃什麼?又是晚上的意大利麪嗎?護士!護士!屏幕! – izb
此問題似乎是脫離主題,因爲它屬於另一個StackExchange站點:codereview.stackexchange.com – Ryley