2011-10-25 70 views
0

在我的視圖中,我有一個表中拉入各種數據的表。最初它只顯示該用戶可操作的行。但是,也可以顯示所有行。爲了實現這一目標,我在表格上方有兩個超鏈接,其中「?isRequiredAction = true」和「?isRequiredAction = false」的hrefs。在Controller中,我有以下幾點:如何將視圖中的數據傳遞給控制器​​

public ActionResult Index(bool? isRequiredAction){ 
string userId = User.Identity.Name; 
bool ira = true; 
if (isRequiredAction != null) 
{ 
    ira = Convert.ToBoolean(isRequiredAction); 
} 
... 
return View(model); 

所以,現在的控制器是由通過點擊這些鏈接創建的查詢字符串獲取其參數。我不滿意這種方法,因爲我不想用這個查詢來弄髒URL。有沒有更簡單的方法來實現我所要求的?如果可能,我們希望避免將鏈接轉換爲表單對象。謝謝。

+1

你可以通過郵政方式發送它,如果你想。 – Birey

回答

3

MSDN文章應該幫助。

從視圖到控制器,您可以執行HttpPost或者您可以將數據作爲參數傳遞。

+1

如果每個人都能理解MSDN文章,爲什麼我們需要像stackoverflow這樣的網站? –

0

您可以創建兩個不同的custom routes,例如:

  1. www.yourapp.com/home
  2. www.yourapp.com/home/showall

之後,你就可以使兩條路線都以相同的動作爲目標,或爲這些路線中的每條路線創建不同的動作。你的選擇!

0

從技術上講,我不認爲有適合您需要的非常合適的解決方案,因爲您不想製作鏈接表單對象,也不會「弄髒」URL。我建議你堅持你的第一種方法,因爲弄髒URL是沒有問題的。通過「弄髒」你的URL,你可以使鏈接可收藏。如果你真的關心它,那麼你可以有兩個選擇:

(1)使用Ajax。這樣你的URL將不受影響;但是,您失去了書籤功能。

(2)使用URL重寫使您的URL「非常漂亮」。這種方法在底層,等於「弄髒」URL,但是以「漂亮」的方式。

相關問題