2010-02-03 53 views
0

基本上,我有一個HTML表單,並希望將數據從窗體傳遞到n asp.net mvc控制器,然後控制器將返回一個XML客戶端操縱。傳遞表單數據到asp.net mvc控制器動作使用JQuery

這是我最初的代碼:

客戶:

$(function() { 
    $('#btnSubmit').click(function() { 
     $.post('/Home/Create', $('form').serialize(), function(data) { 
      $('#entryForm').remove('form'); 
      // $('#entryForm form').html(data); 
      alert(data); 
      $(data).find('Person').each(function() { 
       alert($(this).attr('Lastname').val()); 
      }); 
     }, "xml"); 
     return false; 
    }); 
}); 

這裏是我的控制器動作的代碼:

public ActionResult Create(Person p) 
    { 
     //Person p = new Person(); 
     //p.Lastname = lastname; 
     //p.Firstname = firstname; 
     //p.Middlename = middlename; 

     // this returns XML Data 
     return new XmlResult(p);  
    } 

當我運行和調試,我得到一個消息,說:「attr(..)爲空或不是一個對象 你能幫我找出我在這裏做錯了嗎? 任何建議也會很樂意ap preciated,因爲我仍然在嘗試使用ASP.NET MVC學習Web開發。

感謝

大多數

回答

0

我知道我在做什麼好嗎,這是我更新的客戶端代碼:

$(function() { 
    $('#btnSubmit').click(function() { 
     $.post('/Home/Create', $('form').serialize(), function(data) { 
      $('#entryForm').remove('form'); 
      // $('#entryForm form').html(data); 

      $(data).find('Person').each(function() { 
       var $lastname = $(this).find('Lastname').text(); 
       var $firsttname = $(this).find('Firstname').text(); 
       var $middlename = $(this).find('Middlename').text(); 
       // alert('<p>Lastname: ' + $lastname + '</p>'); 
       $('<p></p>').html($lastname).appendTo('#detailsForm'); 
      }); 
     }, "xml"); 
     return false; 
    }); 
}); 

現在,我的下一個挑戰將是,如何我可以使用ASP.NET MVC將XML文件發送到客戶端,以便 我可以使用JQuery來處理XML?

感謝

0

你爲什麼不使用JSON結果? JQuery支持,只需將$ .post調用中的「xml」替換爲「json」即可。

+0

我同意,它會讓事情變得更簡單。 – smaglio81 2010-02-03 04:36:14

相關問題