防止MVC中的ajax调用
Prevent from ajax call in MVC
嗨,我正在asp.net、中制作我的项目
基本预期行为--填写表单名称,选择主模块(下拉菜单),选择子模块(下拉列表),ajax传递子模块的id下拉菜单,创建(提交)。。它将提交所有值,
现在的代码是行为----填写表单名称,选择master和submodule,而从第二个下拉列表中选择submodule则调用ajax调用,并调用create action,因此表单名称和masterID(从第一个下拉列表提取)变为空。。。所以我需要阻止ajax调用来调用控制器
剃刀视图中的Myform
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>Form</legend>
<div class="editor-label">
@Html.LabelFor(model => model.FormName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.FormName)
@Html.ValidationMessageFor(model => model.FormName)
</div>
<select id="State" name="state"></select><br />
<p>
<input id="sbmt" type="submit" value="Create" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
我的ajax调用
$('#State').change(function () {
var a = $('#State').val();
var token = $('[name=__RequestVerificationToken]').val();
$.ajax({
url: "/form/create",
type: "POST",
data: { __RequestVerificationToken: token, 'SubID': a }
});
});
我的控制器
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Form form, int SubID)
{
if (ModelState.IsValid)
{
form.CreatedBy = 1;
form.SubId = SubID;
form.CreatedDate = DateTime.Now;
form.ModifyBy = 1;
form.ModifyDate = DateTime.Now;
form.IsActive = true;
form.IsDeleted = false;
db.Forms.Add(form);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.MasterID = new SelectList(db.Departments, "MasterId", "ModuleName", form.MasterID);
return View(form);
}
通过注释,您希望能够在提交表单时返回所选状态的值。最好的方法是使用包含属性SubId
的视图模型,并将dropdownlist
绑定到该属性(这样post方法中的SubId
参数就不必了。
@Html.DropDownListFor(m => m.SubId, ....)
另一种选择是将控件重命名为SubId
,使其与POST方法中的参数匹配
<select name="SubId" ...>
并删除不必要的javascript函数$('#State').change(function () {...
我想最简单的方法是使用MVC的ajax助手。这样更改您的表单:
@using (Ajax.BeginForm("Create", "Home", null, new AjaxOptions { OnSuccess = "OnSuccess" }))
{
...
然后为onsuccess 添加一个javascript处理程序
function OnSuccess(){
alert("success");
}
这几乎不是功能性代码,只是为了让您入门。
PS。确保添加了对~/Scripts/jquery.uno唐突-ajax.min.js 的引用
相关文章:
- 阻止在select2单击时调用ajax
- 调用Ajax并返回响应
- Ajax:只在元素存在的情况下调用Ajax
- PHP,MySQL,AJAX-调用AJAX结果后,Bootstrap CSS样式不会显示
- 调用Ajax内部的函数
- 无法获取属性'的值;拆分'在IE8中调用ajax之后
- 我们如何在Firefox中调用AJAX
- Rails:通过调用Ajax重定向
- Cookie 在 Spotify (Javascript) 中调用 ajax 后未保存
- 通过调用 Ajax 来设置 struts bean 值
- 无法从服务器中的 php 调用 Ajax 函数
- 如何在附加表行时调用 ajax
- 在facebook用户发送邀请请求后调用ajax调用
- 定期调用Ajax
- 调用Ajax生成的表单的值
- 无法调用ajax函数
- 在调用AJAX之后显示ng控制器的内容;作为“;作用
- CSS,Java脚本在php中调用ajax后无法正常工作
- 成功调用AJAX后,Toast Growl不会出现
- 如何在调用AJAX时记录或捕获信息和错误