Asp.net mvc 3 我想在mvc3中使用不同的按钮以及mvc3中的javascript处理单个视图上的crud操作
我想在mvc3中使用不同的按钮以及mvc3中的javascript处理单个视图上的crud操作 实际上,我有一个帐户代码和描述字段的视图。 我想使用wcf服务在SQLServer2008R2数据库中添加、编辑和删除记录。 我想使用javascript编写客户端脚本。 我想通过javascript按钮点击事件调用控制器的方法 请告诉我怎么做 目前我有以下javascript函数Asp.net mvc 3 我想在mvc3中使用不同的按钮以及mvc3中的javascript处理单个视图上的crud操作,asp.net-mvc-3,Asp.net Mvc 3,我想在mvc3中使用不同的按钮以及mvc3中的javascript处理单个视图上的crud操作 实际上,我有一个帐户代码和描述字段的视图。 我想使用wcf服务在SQLServer2008R2数据库中添加、编辑和删除记录。 我想使用javascript编写客户端脚本。 我想通过javascript按钮点击事件调用控制器的方法 请告诉我怎么做 目前我有以下javascript函数 $(document).ready(function () { var today = new Date(); var
$(document).ready(function () {
var today = new Date();
var dd = today.getDate();
$('#sve').click(function () {
var person = { AcCode: $('#AcCode').val(), Descrip: $('#Descrip').val(), AddOn: dd };
$.ajax({
url: '/Home/Save',
type: "POST",
data: JSON.stringify(person),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (result) {
// $('#message').html('Record saved successfully' + result).fadeIn();
alert("Record saved successfully");
},
error: function () {
// $('#message').html('Error Occurred').fadeIn();
alert("Record not saved successfully");
}
});
return false;
});
});
下面是保存按钮的控制器代码
[Authorize]
// [Authorize(Roles = "Administrators")]
[HttpPost]
[MultiButton(MatchFormKey = "action", MatchFormValue = "Save")]
public ActionResult Save(AccntBD model)
{
CBSWCF.Account useInfo = new CBSWCF.Account();
if (ModelState.IsValid)
{
if (!model.IsAcCodeExist(model.AcCode))
{
string ObjUser = User.Identity.Name;
string ObjUid = string.Empty;
AcntEnt.AcCode = model.AcCode;
AcntEnt.Descrip = model.Descrip;
objSvc.ACodeSave2(AcntEnt);
}
else
{
ModelState.AddModelError("CustomError", "Account Code Already Exist");
}
}
else
{
ModelState.AddModelError("", "");
}
return View(model);
}
我使用以下代码在单个视图中使用多个按钮。
[AttributeUsage(AttributeTargets.Method,AllowMultiple=false,Inherited=true)]
公共类MultiButtonAttribute:ActionNameSelectorAttribute
{
公共字符串MatchFormKey{get;set;}
公共字符串MatchFormValue{get;set;}
public override bool IsValidName(ControllerContext controllerContext, string actionName, MethodInfo methodInfo)
{
return controllerContext.HttpContext.Request[MatchFormKey] != null &&
controllerContext.HttpContext.Request[MatchFormKey] == MatchFormValue;
}
}
现在的问题是,javascript并没有命中我的save函数,并且向我显示消息notsavedcessfully。
如果您通过JavaScript提交表单,则无需向控制器操作添加MultiButton属性。MultiButton属性是为您希望将提交按钮映射到特定控制器操作而创建的,这是可能的,因为当您通过提交按钮提交表单时,submit按钮name属性被添加到帖子正文中,并带有其提交按钮的特定值,例如
<input type="submit" name="ButtonName" value="ButtonOne"/> <!-- would post ButtonName=ButtonOne -->
<input type="submit" name="ButtonName" value="ButtonTwo"/> <!-- would post ButtonNAme=ButtonTwo -->
url: '/Home/Save?ButtonName=ButtonOne'