我試圖返回從既有的查詢字符串和型號的控制器,查看與模型和查詢字符串
return View("BillingReport.aspx/?report=" + fc["report_selector"], bilDet);
,但是這給了我頁面的運行時錯誤沒有發現,因爲它附加的.aspx等返回視圖在網址的結尾處。
RedirectToAction()
does not have a option to do it。
有沒有辦法做到這一點或不MVC3限制我們使用一個查詢字符串或模型
我試圖返回從既有的查詢字符串和型號的控制器,查看與模型和查詢字符串
return View("BillingReport.aspx/?report=" + fc["report_selector"], bilDet);
,但是這給了我頁面的運行時錯誤沒有發現,因爲它附加的.aspx等返回視圖在網址的結尾處。
RedirectToAction()
does not have a option to do it。
有沒有辦法做到這一點或不MVC3限制我們使用一個查詢字符串或模型
MVC不支持你在找什麼,
但我不明白你爲什麼要使用ModelValues重定向到一個URL。
任何重定向都是GET請求,因此您可以構建模型並從該操作返回視圖。
View()需要一個與之相關的視圖名稱和模型。
Redirect()或RedirectToAction()用於將URL重定向到另一個控制器/操作。所以你不能傳遞一個模型。即使你試圖傳遞模型,它也會將模型屬性作爲查詢字符串參數追加。
我同意瑪納斯的回答,如果我是你,我會考慮在可能的情況下更改設計。
作爲一個側面說明,以下技術是可能的:
TempData["bilDet"] = bilDet;
return RedirectToAction(....); // your controller, action etc.
在行動,那麼你可以檢索你的TempData。 TempData將被自動刪除。
這是一個原因,你會想用模型和查詢字符串:查詢字符串允許你給用戶的方式來保存狀態信息的URL。該模型允許您傳遞大量非平坦數據。所以這裏是我想如何在MVC 5中做到這一點(可能不適用於舊版本,但可能不會):
對視圖使用2個操作而不是1個。使用第一個通過RedirectToAction設置查詢字符串。使用第二個操作將模型返回到視圖。你通過會話狀態將模型從第一個動作傳遞給第二個動作。以下是示例代碼:
public ActionResult Index(string email){
Session["stuff"]=Load(email);
return RedirectToAction("View1action", new { email = email, color = "red" });
}
public ActionResult View1action(string email){
return View("View1",(StuffClass)Session["stuff"]);
}