使用JQuery将表单数据传递给asp.net mvc控制器操作

时间:2010-02-03 03:18:03

标签: jquery asp.net xml ajax asp.net-mvc

基本上,我有一个HTML表单,并希望将表单中的数据传递给n asp.net mvc控制器,然后控制器将返回一个XML用于客户端操作。

这是我的初始代码:

客户端:

$(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;
    });
});

以下是我的Controller操作的代码:

   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(..)为null或不是对象。 你能帮我辨认出我在做错了什么吗? 任何建议也会很高兴,因为我仍在尝试使用ASP.NET MVC学习Web开发。

由于

3 个答案:

答案 0 :(得分: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 ???

由于

答案 1 :(得分:0)

public ActionResult ReturnXmlFile() {
   return File( byte[] data, "text/xml" );
   ...
   return File( string filename, "text/xml" );
   ...
   return File( Stream filestream, "text/xml" );
}

How to create file and return it via FileResult in ASP.NET MVC?

答案 2 :(得分:0)

为什么不使用JSon Result? JQuery支持只需用“json”

替换$ .post调用中的“xml”