簡體   English   中英

ASP.NET MVC 3和AJAX

[英]ASP.NET MVC 3 and AJAX

這是我第一次寫這個板子。 我是一名意大利學生,請原諒我的英語不好。 很多時候我用ASP.NET Web Forms開發了我的Web應用程序; 現在想遷移到ASP.NET MVC框架。 所以我想問兩個問題:

  1. 場景1:我在視圖中的表單中有兩個DropDownList(元素)。 第一個DropDownList包含一個類別列表:我希望當第一個DropDownList中的更改項目時,第二個是自動加載子類別列表。 在Web窗體中,我經常使用UpdatePanel來完成這項工作。 但現在在MVC我不能使用它。 我試過使用jQuery AJAX,但代碼不起作用。 我該如何實現這項工作? 請問一個例子嗎?

  2. 情景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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM