我工作的一个ASP.net MVC 2.0应用程序。
我有一个表格,将数据输入之后,用户点击提交。
在这里,我不想做enitre后回来,而我只想做一个Ajax请求表单数据发送到相应的控制方法,插入并发送到同一个页面的响应。
因为,我使用MVC 2.0,我不能使用AJax.beginForm。 我需要依靠的jQuery的Ajax方法。
请对此有所帮助。
我使用的是强类型的视图。
我工作的一个ASP.net MVC 2.0应用程序。
我有一个表格,将数据输入之后,用户点击提交。
在这里,我不想做enitre后回来,而我只想做一个Ajax请求表单数据发送到相应的控制方法,插入并发送到同一个页面的响应。
因为,我使用MVC 2.0,我不能使用AJax.beginForm。 我需要依靠的jQuery的Ajax方法。
请对此有所帮助。
我使用的是强类型的视图。
尝试这个,
在下面的代码我初始化模型和发布该模型。
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 });
}
你可以使用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);
}