如何发送表单数据到控制器发出AJAX请求,以dB为单位保存数据(How to send form d

2019-10-18 19:37发布

我工作的一个ASP.net MVC 2.0应用程序。

我有一个表格,将数据输入之后,用户点击提交。

在这里,我不想做enitre后回来,而我只想做一个Ajax请求表单数据发送到相应的控制方法,插入并发送到同一个页面的响应。

因为,我使用MVC 2.0,我不能使用AJax.beginForm。 我需要依靠的jQuery的Ajax方法。

请对此有所帮助。

我使用的是强类型的视图。

Answer 1:

尝试这个,

在下面的代码我初始化模型和发布该模型。

var returnValue = new Object();//dynamically fill model value with different model entity
            returnValue.vendorSiteSustainabilityList = VendorSiteSustainability;
            returnValue.VendorSiteId = '@Model.VendorSiteId';
            returnValue.ServiceTypeId = '@Model.ServiceTypeId';
            returnValue.HaulerName = $("#HaulerName").val();
            returnValue.FacilityName = $("#FacilityName").val();
            returnValue.CityId = parseInt($("#CityId").val());
            returnValue.StateId = parseInt($("#StateId").val());
            returnValue.CoutryID = parseInt($("#CoutryID").val());

            var request = $.ajax({
                url: '',
                type: 'POST',
                cache: false,
                data: JSON.stringify(returnValue),
                dataType: 'json',
                contentType: 'application/json; charset=utf-8'
            });

            request.done(function (msg) {

                if (msg != null && msg.IsValid != null) {

                    if (msg.IsValid == true) {
                        //write code when your data successfully operated
                    }
                }
            });

模型声明:

[Serializable]
    public class myModel
    {}

控制器:

[HttpPost]
        public ActionResult SaveAction(myModel model)
        {
            if (model != null && ModelState.IsValid)
            {

            }
            return Json(new { IsValid = ModelState.IsValid });
        }


Answer 2:

你可以使用JavaScript的序列化方法直接发表您的数据。

鉴于

  @model ViewModel

   @using (Html.BeginForm("Save", "Home", FormMethod.Post, new { id = "FormId" }))
            {

                <input type="button" value="Save" onclick="SaveDemo();" />

             }

Java脚本保存功能

   function SaveDemo() {
   $.ajax({
            url: '',
            type: 'POST',
            cache: false,
            data: jQuery("#FormId").serialize(),
            success: function (result) {
             // do accordingly as per your result                 
         } }); }

和控制器保存方法会喜欢:

[HttpPost]
public ActionResult Save(ViewModel viewModel)
    {
      if (this.ModelState.IsValid)
        {
          // save to DB
        }

       return this.View(viewModel);
    }


Answer 3:

您可以订阅一个表单的submit事件,并通过AJAX发送数据:

$('form').submit(function(){
    var $form = $(this);
    if($form.valid()) {
        var action = $form.prop('action'),
            method = $form.prop('method'),
            data = $form.serialize();

        $.ajax({
            url: action,
            type: method,
            data: data,
            success: function (response) {
                // success function
            }
        });
    }
    return false; // do not forget to return false to prevent the default behaviour
});

更新:

控制器:

[HttpPost]
public ActionResult Save(YourViewModel viewModel)
{
    if (ModelState.IsValid)
    {
        // Save to db
    }
    return PartialView("_PartialViewName", viewModel);
}


文章来源: How to send form data to controller to make an ajax request for saving data in Db