【发布时间】:2017-01-28 19:20:27
【问题描述】:
我的 MVC 应用程序有问题。
我的控制器:
public class CustomerController : Controller
{
CustomerFacade cf = new CustomerFacade();
public ActionResult Create()
{
return View();
}
[HttpPost]
public void Create(Customers customers)
{
if (customers != null)
{
cf.CreateCustomer(customers, UserSession.UserId);
}
// return View();
}
public ActionResult GetAllCustomers()
{
var allCustomers = cf.GetAllCustomers();
return PartialView("InsuranceCustomer", allCustomers);
}
}
我的主要观点:
<div class="x_content">
<div id="mainb" style="height:350px;">
<button type="button" class="btn btn-primary" data-toggle="modal" data-target=".bs-example-modal-lg">
<i class="fa fa-plus"></i>
</button>
@*render modal*@
@Html.Partial("~/Views/Customer/CreateModal.cshtml")
<button type="button" class="btn btn-primary" data-toggle="modal" data-target=".bs-example-modal-lg">
<i class="fa fa-database"></i>
</button>
@*render modal*@
<div id="customerId">
@Html.Action("GetAllCustomers", "Customer")
</div>
</div>
</div>
部分视图 CreateModal.cshtml 是引导模式弹出窗口上的一个表单:
例如:
<div class="modal-body">
@using (Ajax.BeginForm("Create", "Customer", null, new AjaxOptions
{
HttpMethod = "Post",
UpdateTargetId = "customerId",
OnSuccess = "$('#customerModal').modal('hide')"
}))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
<div class="col-md-4">
@Html.TextBoxFor(model => model.FirstName, new { @required = "require", @class = "form-control", placeholder = @Resources.InsuranceCustomer.FirstName })
@Html.ValidationMessageFor(model => model.FirstName, "", new { @class = "text-danger" })
</div>
<div class="col-md-4">
@Html.TextBoxFor(model => model.LastName, new { @required = "require", @class = "form-control", placeholder = @Resources.InsuranceCustomer.LastName })
@Html.ValidationMessageFor(model => model.LastName, "", new { @class = "text-danger" })
</div>
</div>
// and other field form
<div class="modal-footer">
<button type="submit" class="btn btn-default" data-dismiss="modal">Close</button>
<input type="submit" value="@Resources.Common.Save" class="btn btn-success" />
</div>
}
@*<div>
@Html.ActionLink("Back to List", "Index")
</div>*@
</div>
InsuranceCustomer 看起来像:
@model IEnumerable<Insurance_System.Models.Customers>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.FirstName)
</th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.FirstName)
</td>
</tr>}
我想在提交模态 CreateModal 后再次加载 InsuranceCustomer 并使用新元素而不重新加载页面。
(对不起我的英语不好)
【问题讨论】:
-
什么问题?你甚至没有解释实际发生的事情。你有没有包含相关的脚本(
jquery.unobtrusive-ajax.js)
标签: ajax asp.net-mvc twitter-bootstrap