Строго типизированный доступ ASP.Net значения модели MVC в Jquery

Я привязал модель к представлению, и каждое свойство в модели имеет связанный элемент управления в представлении.

Это большая модель и есть несколько элементов управления на виде. Пользователь обновляет данные в представлении, и когда он нажимает на кнопку Сохранить, обновленные значения модели должны быть отправлены в метод действия контроллера. Здесь я делаю AJAX вызов метода контроллера.

Поскольку это строго типизированное представление, я проверяю, есть ли возможность передать обновленную модель непосредственно вместо доступа к значениям элемента управления.

Пожалуйста дайте мне знать если вам нужна любая дополнительная информация. PFB код, который я пробовал.

Спасибо,
Бхарат

Просмотр кода

    @model WebApplication1.Models.PersonModel

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>


@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()

    <div class="form-horizontal">
        <h4>PersonModel</h4>
        <hr />
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })
        <div class="form-group">
            @Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.DateTime, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.DateTime, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.DateTime, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.Age, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Age, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.Age, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.Company, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Company, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.Company, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Save" id="btnGet" class="btn btn-default" />
            </div>
        </div>
    </div>
}

<div>
    @Html.ActionLink("Back to List", "Index")
</div>

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        //window.setInterval(Setinterval, 10000);

            $("#btnGet").click(function () {
                Setinterval();
            });

            function Setinterval() {
                //var request = new PersonModel1();
                //var request = '<%= @Model %>';/// '<%= Model %>';
                var request = @Html.Raw(Json.Encode(Model));
                $.ajax({

                    url: "/ST/SubmitRequest",
                    dataType: "json",
                    contentType: "application/json",
                    type: "POST",
                    data: JSON.stringify(request),
                    success: function (response) {
                        //Setinterval();
                        alert("Done...!");
                    },
                    failure: function (response) {
                        alert(response.responseText);
                    },
                    error: function (response) {
                        alert(response.responseText);
                    }
                });
            };

        });


</script>

Код контроллера

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using WebApplication1.Models;

namespace WebApplication1.Controllers
{
    public class STController : Controller
    {
        // GET: ST
        public ActionResult Index()
        {
            PersonModel pm = new PersonModel() {
                Age = "34",
                Company = "DDDD",
                DateTime = DateTime.Now,
                Name = "XYZ S"
            };
            return View(pm);
        }

        [HttpPost]
        public JsonResult SubmitRequest(PersonModel pm)
        {

            return Json(pm);
        }
    }
}

1 ответ