AJAX調用你好:我將我的項目在asp.net,防止在MVC
基本預期行爲 - 填寫表單名稱,選擇主模塊(下拉列表),選擇子模塊(下拉列表) AJAX通過子模塊下拉的ID,創建(提交)..這將提交所有的值,
現在代碼的行爲 ----填寫表單名稱,選擇主站和子模塊,而選擇從第二個下拉子模塊調用ajax調用和創建操作被調用,所以表單名稱和masterID(從第一個下拉列表中提取)變爲空白......所以我需要防止ajax ca LL打電話給控制器Razor視圖
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);
}
」 ......我有需要形式的另一種精密組件,以被提交,請幫助我如何防止ajax調用提交值。「所以你需要提交的字段,或者你正試圖阻止字段被提交....這是什麼? – zgood 2014-09-02 15:42:23
@zgood我更新了問題的人,請看看 – 2014-09-02 15:48:08
我想也許你的創建動作是一個JsonResult並返回到你的頁面,而不是你現在有的RedirectToAction。 – zgood 2014-09-02 15:57:57