我正在开发一个 ASP.net MVC 2.0 应用程序。
我有一个表单,输入数据后,用户点击提交。
在这里,我不想进行整个回发,而我只想发出 ajax 请求以将表单数据发送到相应的控制器方法,并插入并将响应发送到同一页面。
因为,我使用的是 MVC 2.0,所以我不能使用 AJax.beginForm。我需要依赖 jquery Ajax 方法。
请帮助解决这个问题。
我正在使用强类型视图。
我正在开发一个 ASP.net MVC 2.0 应用程序。
我有一个表单,输入数据后,用户点击提交。
在这里,我不想进行整个回发,而我只想发出 ajax 请求以将表单数据发送到相应的控制器方法,并插入并将响应发送到同一页面。
因为,我使用的是 MVC 2.0,所以我不能使用 AJax.beginForm。我需要依赖 jquery Ajax 方法。
请帮助解决这个问题。
我正在使用强类型视图。
您可以使用 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);
}
您可以订阅表单的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);
}
试试这个,
在下面的代码中,我初始化模型并发布该模型。
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 });
}