jquery 对话框中的数据究竟应该如何传递给控制器?我不确定要为数据添加什么(请参阅 Index.cshtml 代码)
控制器
public ActionResult CreateUser() {
return PartialView("_Create", new RegisterModel());
}
[HttpPost]
public ActionResult CreateUser(RegisterModel user) {
//...
}
索引.cshtml
<script type="text/javascript">
$(document).ready(function () {
$('#dialog').dialog({
//...dialog information
open: function(event, ui) {
$(this).load('@Url.Action("CreateUser")');
},
buttons: {
"Submit": function () {
$.ajax({
url: 'Users/CreateUser',
type: 'POST',
data: /* What is passed here? */,
});
}
}
});
$('#btnCreate').click(function (e) {
e.preventDefault();
$('#dialog').dialog('open');
});
});
</script>
@Html.ActionLink("Create New User", "CreateUser", null, new { id= "btnCreate" })
<div id="dialog" title="Create User" style="overflow: hidden;"></div>
---Edit--- 这是从 open 函数调用的模型
模型
public class RegisterModel {
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }
[Required]
[DataType(DataType.EmailAddress)]
[Display(Name = "Email address")]
public string Email { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
[Required]
[Display(Name = "Roles")]
public string RolesId { get; set; }
public IEnumerable<SelectListItem> RolesItem {
get { return new SelectList(Roles.GetAllRoles()); }
}
}
局部视图
@model MvcApp.Models.RegisterModel
@{
ViewBag.Title = "Register";
}
<h2>Create a New User</h2>
<p>
Passwords are required to be a minimum of @Membership.MinRequiredPasswordLength characters in length.
</p>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<div id="CreateModel"></div>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true, "Account creation was unsuccessful. Please correct the errors and try again.")
<div>
<fieldset>
<table>
<tr>
<td>@Html.LabelFor(m => m.UserName)</td>
<td>@Html.EditorFor(m => m.UserName)</td>
<td>@Html.ValidationMessageFor(m => m.UserName)</td>
</tr>
... more fields...
</table>
</fieldset>
</div>
}