[英]ASP.NET MVC 3 and AJAX
這是我第一次寫這個板子。 我是一名意大利學生,請原諒我的英語不好。 很多時候我用ASP.NET Web Forms開發了我的Web應用程序; 現在想遷移到ASP.NET MVC框架。 所以我想問兩個問題:
場景1:我在視圖中的表單中有兩個DropDownList(元素)。 第一個DropDownList包含一個類別列表:我希望當第一個DropDownList中的更改項目時,第二個是自動加載子類別列表。 在Web窗體中,我經常使用UpdatePanel來完成這項工作。 但現在在MVC我不能使用它。 我試過使用jQuery AJAX,但代碼不起作用。 我該如何實現這項工作? 請問一個例子嗎?
情景2:我有一個循序漸進的向導表格。 所以,我需要一步一步地傳遞(記憶)數據。 我在哪里可以記住這些數據? 在會議中? 一個建議?
非常感謝Francesco。
1)當用戶選擇第一個下拉列表時,您可以使用jQuery ajax獲取第二個下拉列表中的項目。
假設您的Category類看起來像這樣
public class Category
{
public ID { set;get;}
public string Name { set;get;}
}
並且視圖中的下拉列表是這樣的
@Html.DropDownListFor(x => x.SelectedCategoryID,
new SelectList(Model.Categories, "ID", "Name"), "Select")
@Html.DropDownListFor(x => x.SelectedSubCategoryID,
new SelectList(Model.SubCategories, "ID", "Name"), "Select")
現在有一些javascript來監聽第一個下拉列表的更改事件並獲取值,對動作方法進行ajax調用,該方法接受類別ID並返回JSON
格式的子類別列表。
<script type="text/javascript">
$(function () {
$("#SelectedCategoryID").change(function () {
var self = $(this);
var items="";
$.getJSON("@Url.Action("Index", "GetSubCategories")?id="+self.val(),
function(data){
$.each(data,function(index,item){
items+="<option value='"+item.ID+"'>"+item.Name+"</option>";
});
$("#SelectedSubCategoryID").html(items);
});
});
});
</script>
現在你應該有一個GetSubCategories
動作方法,它返回JSON
格式的(Sub)類別列表
public ActionResult GetSubCategories(int id)
{
List<Category> subCategoryList=new List<Category>();
//to do : fill the list of (sub) categories to the
// above list for the category id passed to this method.
return Json(subCategoryList,Json.RequestBehaviour.AllowGet);
}
2)會議應該是好的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.