积极答复者
Ajax.BeginForm 提交后产生两个表单

问题
-
Model 类
- C# code
Controller 类public class Department { public string Name { get; set; } public string Description { get; set; } }
- C# code
-
public class DepartmentController : Controller { [HttpGet] public ActionResult Create() { return View(); } [HttpPost] public ActionResult Create(TestEntity.Department department) { ViewBag.MyMessage = "Error Message1"; return View(); } }
View
- View
@model TestEntity.Department @{ ViewBag.Title = "Create Department"; Layout = null; } <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script> <script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script> <script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script> <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script> <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script> <h2>Create Department</h2> @using (Ajax.BeginForm("Create", "Department", new AjaxOptions { UpdateTargetId = "divForm", HttpMethod="POST" })) { <fieldset> <legend>Create Department</legend> @Html.LabelFor(m => m.Name) @Html.TextBoxFor(m => m.Name, new { id="txtName", style="background-color:#CFDFFC"}) @ViewBag.MyMessage <br /> @Html.LabelFor(m => m.Description) @Html.TextBoxFor(m => m.Description) <br /> <input type="submit" id="btnSubmit" value="Create" /> </fieldset> } <div id="divForm"></div>进行异步提交之后,在 <div id="divForm"></div> 内部显示了正确的信息,但是不合理的是,原来的表单还在。如此一来,异步提交之后,页面上显示两个创建部门的表单了
答案
-
我无法重现你的错误,没有出现两个表单。我的运行情况如下:
如果你的意思是点击Submit之后不需要出现Create页面,那么应该设法使用跳转命令到其它View, 譬如:
[HttpPost] public ActionResult Create(Department department) { ViewBag.MyMessage = "Error Message1"; return View("Successful"); //Create Successful page to jump to }
- 已标记为答案 Song TianModerator 2012年11月13日 8:04
全部回复
-
我无法重现你的错误,没有出现两个表单。我的运行情况如下:
如果你的意思是点击Submit之后不需要出现Create页面,那么应该设法使用跳转命令到其它View, 譬如:
[HttpPost] public ActionResult Create(Department department) { ViewBag.MyMessage = "Error Message1"; return View("Successful"); //Create Successful page to jump to }
- 已标记为答案 Song TianModerator 2012年11月13日 8:04