我是一名桌面開發人員,我教自己的ASP.NET MVC3與C#(不能使用MVC4呢......)。出於這個原因,我正在將一些小型虛擬項目捆綁在一起。在這個項目中,我使用帶電影類別的DropDownListFor(我們都知道這個例子對嗎?)。但是因爲這個教程太快了,我正在嘗試做更簡單的事情。從JQuery渲染部分視圖
我的模型:
public class MovieModel {
public int 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; }
}
看到了嗎?很簡單。我有一個強類型的視圖中,我可以用這個模式:
@model MvcDropDownList.Models.MovieModel (1st line of Index.cshtml).
當主控制器的默認操作被稱爲模型填充:
public ActionResult Index() {
ViewBag.Message = "Welcome to ASP.NET MVC!";
Models.MovieModel mm = new Models.MovieModel();
return View(mm);
}
到目前爲止好。沒問題。現在我想用不顯眼的ajax向用戶顯示它在部分視圖中選擇的類別的ID ...因爲我沒有得到它的工作,我開始更小。暫時忘掉DrowpdownList。所有我目前所面對的是這樣的按鈕:
<input type="button" value="Minicart test" onclick="categoryChosen();" />
而且這個div:
<div id="minicart">
@Html.Partial("Information")
</div>
迷你購物車的東西是從另一個教程,我道歉。不要讓它讓你分心。
這個JavaScript:
function categoryChosen() {
var url = "Home/CategoryChosen/" + "2";
$.post(url, function (data) {
debugger;
$("#miniCart").html(data);
});
}
的2確實是堅實的,從我早期的嘗試得到它的工作。最後,我想這是ofcourse變量...
調用該動作:
[AcceptVerbs("POST")]
public ActionResult CategoryChosen(string SelectedCategorieID) {
ViewBag.messageString = "2";
return PartialView("Information");
}
是啊,你看到正確。我爲我的測試插入2。因爲就像我說的那樣,不能讓它工作。局部視圖信息看起來像這樣:
@{
ViewBag.Title = "Information";
}
<h2>Information</h2>
<h2>You selected: @ViewBag.messageString</h2>
所以,現在的大問題。我期望部分視圖呈現:「您選擇了:2」。我甚至在調試javascript時看到這一點,並查看變量「data」中的內容。任何人都可以幫助我,爲什麼它不呈現2?然後,我可以繼續自學這些東西。非常感謝您的幫助。如果你錯過了任何一種信息,請不要猶豫,問。
我會使用集成的MVC-Ajax功能。看看Ajax.Beginform和不顯眼的ajax。我喜歡這個教程http://www.asp.net/mvc/tutorials/older-versions/javascript/creating-a-mvc-3-application-with-razor-and-unobtrusive-javascript – 2013-03-05 09:26:41
謝謝你的鏈接。 – 2013-03-05 10:03:44