我有以下的控制器:插入一個下拉列表值進路由值
public class StoreController : Controller
{
public ActionResult Index(string category, int? page)
{
//some code
}
}
和一個圖,該數據發佈到Index
方法:
@using (Html.BeginForm("Index", "Store", new { category = Model.Category, page = 1}))
{
<input type = "submit" class="btn btn-default" value = "Search" />
@:Choose category:  
@Html.DropDownListFor(model => model.Category, new[]
{
new SelectListItem{ Text = "All", Value = "All", Selected = true},
new SelectListItem{ Text = "Cat1", Value = "Cat1"},
new SelectListItem{ Text = "Cat2", Value = "Cat2"},
new SelectListItem{ Text = "Cat3", Value = "Cat3"}
})
}
問題是,路由值傳遞給Index
方法顯然是錯誤的,因爲Model.Category
是傳遞給視圖的Model的Category。我正嘗試使用下拉列表中的選定值進行路由。問題是我如何檢索它?
我知道我可以用jQuery Ajax做這一切,但我想先試試這種方式。是否有可能以簡單的方式做到這一點,或者我真的不得不修改GET請求嗎?
使窗體'FormMethod.Get'和刪除'新{category = Model.Category}'。然後將所選下拉列表的值添加到路線值 –
謝謝您的回覆。我想保持代碼小,所以我沒有包含完整的表單,但實際上它有我想要的其他值,所以GET是不可接受的。抱歉混淆。 – BartG
還有多少其他值?如果它可能超過查詢字符串限制,那麼只需執行POST而不是GET。 –