MVC使用jQuery从视图向控制器传递Model的2种方法_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > MVC使用jQuery从视图向控制器传递Model的2种方法

MVC使用jQuery从视图向控制器传递Model的2种方法

 2014/6/10 3:36:33  Darren Ji  程序员俱乐部  我要评论(0)
  • 摘要:有这样的一个Model:usingSystem.ComponentModel.DataAnnotations;namespaceMvcApplication1.Models{publicclassMovie{publicintId{get;set;}[Required(ErrorMessage="必填")]publicstringTitle{get;set;}}}HomeController中,一个Action用来显示强类型视图,一个用来接收从视图传递过来的Model。usingSystem
  • 标签:MVC 方法 使用 jQuery

有这样的一个Model:

using System.ComponentModel.DataAnnotations;

namespace MvcApplication1.Models
{
    public class Movie
    {
        public  int Id { get; set; }
        [Required(ErrorMessage = "必填")]
        public string Title { get; set; }
    }
}

 

HomeController中,一个Action用来显示强类型视图,一个用来接收从视图传递过来的Model。

using System.Web.Mvc;
using MvcApplication1.Models;

namespace MvcApplication1.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View(new Movie());
        }

        public ActionResult AddMovie(Movie movie)
        {
            return Json(new {msg = "ok"});
        }

    }
}

 

  方法一:通过jQuery的serialize()方法

@model MvcApplication1.Models.Movie

@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Index</h2>

@using (Html.BeginForm("AddMovie", "Home", FormMethod.Post, new {id = "addForm"}))
{
    @Html.EditorFor(m => m.Title)
    @Html.ValidationMessageFor(m => m.Title)
    <br/>
    <input type="button" id="addMovie" value="提交"/>
}

@section scripts
{
    <script src="~/Scripts/jquery.validate.js"></script>
    <script src="~/Scripts/jquery.validate.unobtrusive.js"></script>
    <script type="text/javascript">
        $(function() {
            $('#addMovie').click(function(e) {
                e.preventDefault();
                if ($('#addForm').valid()) {
                    $.ajax({
                        url: $('#addForm').attr('action'),
                        type: $('#addForm').attr('method'),
                        data: $('#addForm').serialize(),
                        success: function(data) {
                            if (data.msg == 'ok') {
                                alert('提交成功');
                            }
                        }
                    });
                }
            });
        });
    </script>

}

 

  方法二:通过jQuery的 JSON.stringify()方法把匿名对象转换成json

$(function() {
            $('#addMovie').click(function(e) {
                e.preventDefault();
                if ($('#addForm').valid()) {
                    addMovie();
                }
            });
        });

        function addMovie() {
            var movie = {
                "Title" : $('#Title').val()
            };

            $.ajax({
                url: '@Url.Action("AddMovie","Home")',
                data: JSON.stringify(movie),
                type: 'POST',
                contentType: 'application/json;charset=utf-8',
                success: function(data) {
                    if (data.msg == 'ok') {
                        alert('提交成功');
                    }
                }
            });
        }
上一篇: 【翻译】MVC Music Store 教程-概述(一) 下一篇: 没有下一篇了!
发表评论
用户名: 匿名