2010-02-03 22 views
2

我從URL傳遞一個ID進入我的控制器操作的一些問題ASP.NET MVC和通過ID,以強類型BeginForm

可以說我有這個網址:Bing /索引/ 4

在我母版頁我想生成提交給BingController SearchAction的表單。我的確從URL像這樣

​​

(本例中4)如何獲得ID將它傳遞給搜索行動?

感謝您的幫助

回答

3

要訪問母版頁中的數據,你的控制器需要那麼母版頁訪問它,將其添加到的ViewData。

public ActionResults Index(string id) 
{ 
    ViewData["SearchID"] = id; 

    return View(); 
} 

然後在你的母版頁,您可以訪問它的ViewData的

using (Html.BeginForm("Search", "Bing", { id = ViewData["SearchID"] }) 

對於一個強類型的視圖,我有了性能BaseModel類母版頁需要和我所有的其他模型繼承基類。事情是這樣的......

public class BaseModel 
{ 
    prop string SearchID {get;set;} 
} 

public class HomeIndexModel : BaseModel 
{ 

} 

public ActionResults Index(string id) 
{ 
    HomeIndexModel model = new HomeIndexModel(); 
    model.SearchID = id; 

    return View(model); 
} 

你的母版頁是這樣的:

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<BaseModel>" %> 

<% using(Html.BeginForm<BingController>(action => action.Search(Model.SearchID))) { %> 
+0

謝謝,它的工作原理就像一個魅力。這只是對於MasterPage或普通頁面而言是否有價值? – 2010-02-03 14:40:58

+0

它將適用於每個頁面以及部分視圖。 – 2010-02-03 14:43:02

+0

是的,事實上,我想知道是否需要這樣做也與頁面或部分視圖。當它在頁面中使用時,似乎asp會將ID自動綁定到action參數。 – 2010-02-03 14:49:12

相關問題