我simpel測試型號:無法通過選擇價值DropDownListFor到JavaScript函數
public class MovieModel {
public string SelectedCategorieID { get; set; }
public List<CategorieModel> Categories { get; set; }
public MovieModel() {
this.SelectedCategorieID = "0";
this.Categories = new List<CategorieModel>() {new CategorieModel {ID = 1,
Name = "Drama"},
new CategorieModel {ID = 2,
Name = "Scifi"}};
}
}
public class CategorieModel {
public int ID { get; set; }
public string Name { get; set; }
}
我家的控制器操作指數:
public ActionResult Index() {
Models.MovieModel mm = new Models.MovieModel();
return View(mm);
}
我的強類型查看:
@model MvcDropDownList.Models.MovieModel
@{
ViewBag.Title = "Home Page";
}
<script type="text/javascript">
function categoryChosen(selectedCatID) {
// debugger;
var url = "Home/CategoryChosen?SelectedCategorieID=" + selectedCatID;
$.post(url, function (data) {
$("#minicart").html(data);
});
}
</script>
@using (Html.BeginForm("CategoryChosen", "Home", FormMethod.Get)) {
<fieldset>
Movie Type
@Html.DropDownListFor(m => m.SelectedCategorieID, new SelectList(Model.Categories, "ID", "Name", Model.SelectedCategorieID), "---Select categorie---")
<p>
<input type="submit" value="Submit" />
</p>
</fieldset>
}
<input type="button" value="Minicart test" onclick="categoryChosen('@Model.SelectedCategorieID');" />
<div id="minicart">
@Html.Partial("Information")
</div>
請忽略第一個輸入,因爲我正在使用第二個輸入'Minicart測試'(HTML.Beginform在那裏稍後學習別的東西)。迷你車的東西來自另一個教程,我很抱歉。不要讓它讓你分心。
當按鈕被點擊categoryChosen jQuery是調用,它調用的動作:
[AcceptVerbs("POST")]
public ActionResult CategoryChosen(string SelectedCategorieID) {
ViewBag.messageString = SelectedCategorieID;
return PartialView("Information");
}
局部視圖的信息是這樣的:
@{
ViewBag.Title = "Information";
}
<h2>Information</h2>
<h2>You selected: @ViewBag.messageString</h2>
我的問題是,爲什麼是Model.SelectCategorieID爲零(Model.SelectCategorieID = 0),即使我更改了下拉列表中的值?我究竟做錯了什麼?非常感謝您提前回答。如果您需要任何信息或任何不清楚的地方,請告訴我。
達林,非常感謝你的廣泛答覆*需要一口氣*。好的,首先,答案的確是從DropDownList本身獲取值。所以我現在在我的javascript中做的是:var selCatID = $(「#Cats」)。val(); (我給了下拉ID Card of course)。非常感謝你的回答。 – 2013-03-05 13:55:50
但是你的回答給了我更多的問題,因爲我在web開發方面很新穎。爲什麼值硬編碼,如果我說:@ Model.SelectedCategorieID?我認爲值發生變化後存儲在這個屬性?什麼是不顯眼的,在單獨的文件中設置JavaScript? – 2013-03-05 14:06:06
什麼是.data('url')?那是爲了提取drowpdownlistbox所在的網址嗎?我不明白這將如何稱爲行動「類別選擇」... – 2013-03-05 14:08:11