.net 无法使用Ajax.BeginForm提交模型
我正在尝试为MVC上的应用程序用户制作一个更新表单 这是我的控制器:.net 无法使用Ajax.BeginForm提交模型,.net,ajax,asp.net-mvc,.net,Ajax,Asp.net Mvc,我正在尝试为MVC上的应用程序用户制作一个更新表单 这是我的控制器: // Usuarios/Modificar [HttpPost, ActionName("Modificar")] public ActionResult Modificar(ApplicationUser modifiedUser) { using (ApplicationDbContext db = new ApplicationDbContext()) {
// Usuarios/Modificar
[HttpPost, ActionName("Modificar")]
public ActionResult Modificar(ApplicationUser modifiedUser)
{
using (ApplicationDbContext db = new ApplicationDbContext())
{
var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(db));
var applicationUser = userManager.FindById(modifiedUser.Id);
if (applicationUser != null)
{
applicationUser.Apellido = modifiedUser.Apellido;
applicationUser.Nombre = modifiedUser.Nombre;
applicationUser.Dni = modifiedUser.Dni;
applicationUser.Interno = modifiedUser.Interno;
applicationUser.Email = modifiedUser.Email;
applicationUser.UserName = modifiedUser.UserName;
userManager.Update(applicationUser);
}
}
return null;
}
//Usuarios/Modificar
[HttpPost,ActionName(“Modificar”)]
公共操作结果修改器(应用程序用户修改器)
{
使用(ApplicationDbContext db=new ApplicationDbContext())
{
var userManager=newusermanager(newuserstore(db));
var applicationUser=userManager.FindById(modifiedUser.Id);
if(applicationUser!=null)
{
applicationUser.Apellido=modifiedUser.Apellido;
applicationUser.Nombre=modifiedUser.Nombre;
applicationUser.Dni=modifiedUser.Dni;
applicationUser.Interno=modifiedUser.Interno;
applicationUser.Email=modifiedUser.Email;
applicationUser.UserName=modifiedUser.UserName;
userManager.Update(applicationUser);
}
}
返回null;
}
这是我的观点:
@model Core.Models.ApplicationUser
@using (Ajax.BeginForm("Modificar", "Usuarios", new AjaxOptions(){ HttpMethod = "POST", }))
{
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
@Html.HiddenFor(model => model.Id)
<div class="col-md-12">
<div class="box box-default">
<!-- #region Header del Box -->
<div class="box-header with-border">
<h3 class="box-title">Usuario: @Model.UserName</h3>
</div>
<!-- #endregion -->
<!-- #region Cuerpo del box. -->
<div class="box-body">
<!-- #region Fila 1. -->
<div class="row">
<!-- Columna 1. -->
<div class="col-md-2">
<div class="form-group">
<i class="fa fa-fw fa-user"></i> <label>Apellido: </label>
@Html.EditorFor(model => model.Apellido, new {htmlAttributes = new {@class = "form-control"}})
@Html.ValidationMessageFor(model => model.Apellido, "", new {@class = "text-danger"})
</div>
</div>
<!-- /.col -->
<!-- Columna 2. -->
<div class="col-md-2">
<div class="form-group">
<i class="fa fa-fw fa-user"></i> <label>Nombre: </label>
@Html.EditorFor(model => model.Nombre, new {htmlAttributes = new {@class = "form-control"}})
@Html.ValidationMessageFor(model => model.Nombre, "", new {@class = "text-danger"})
</div>
</div>
<!-- /.col -->
<!-- Columna 3. -->
<div class="col-md-2">
<div class="form-group">
<i class="fa fa-fw fa-user"></i> <label>Documento: </label>
@Html.EditorFor(model => model.Dni, new {htmlAttributes = new {@class = "form-control"}})
@Html.ValidationMessageFor(model => model.Dni, "", new {@class = "text-danger"})
</div>
</div>
<!-- /.col -->
<!-- Columna 4. -->
<div class="col-md-2">
<div class="form-group">
<i class="fa fa-fw fa-user"></i> <label>Mail: </label>
@Html.EditorFor(model => model.Email, new {htmlAttributes = new {@class = "form-control"}})
@Html.ValidationMessageFor(model => model.Email, "", new {@class = "text-danger"})
</div>
</div>
<!-- /.col -->
<!-- Columna 5. -->
<div class="col-md-2">
<div class="form-group">
<i class="fa fa-fw fa-user"></i> <label>Usuario: </label>
@Html.EditorFor(model => model.UserName, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Email, "", new { @class = "text-danger" })
</div>
</div>
<!-- /.col -->
</div>
<!-- #endregion /.row -->
</div>
<!-- #endregion /.box-body -->
<div class="box-footer">
<div class="row">
<div class="col-md-1 pull-right">
<input type="submit" name="btnAppUser" id="btnAppUser" class="btn btn-default pull-right" value="Guardar" />
</div>
</div>
</div>
</div>
</div>
}
@model Core.Models.ApplicationUser
@使用(Ajax.BeginForm(“Modificar”、“Usuarios”、新的AjaxOptions(){HttpMethod=“POST”,}))
{
@Html.ValidationSummary(true,“,new{@class=“text danger”})
@Html.HiddenFor(model=>model.Id)
Usuario:@Model.UserName
阿佩利多:
@EditorFor(model=>model.Apellido,new{htmlAttributes=new{@class=“form control”}})
@Html.ValidationMessageFor(model=>model.Apellido,“,new{@class=“text danger”})
名义:
@EditorFor(model=>model.Nombre,new{htmlAttributes=new{@class=“form control”}})
@Html.ValidationMessageFor(model=>model.Nombre,“,new{@class=“text danger”})
文件:
@EditorFor(model=>model.Dni,new{htmlAttributes=new{@class=“form control”})
@Html.ValidationMessageFor(model=>model.Dni,“,new{@class=“text danger”})
邮寄:
@EditorFor(model=>model.Email,new{htmlAttributes=new{@class=“form control”})
@Html.ValidationMessageFor(model=>model.Email,“,new{@class=“text danger”})
乌萨里奥:
@EditorFor(model=>model.UserName,new{htmlAttributes=new{@class=“form control”})
@Html.ValidationMessageFor(model=>model.Email,“,new{@class=“text danger”})
}
但是,在提交之后,当post到达控制器时,applicationUser为空。Ajax表单未发送信息或未绑定到ApplicationUser模型中。有人能帮我理解这里的问题吗
谢谢 您绑定的模型元素需要在ajax表单中。@RyanWilson抱歉,我不明白。你能再解释一下吗?你添加了web.config文件的
应用程序设置和jquery.unobtrusive ajax.min.js
javascript的引用了吗?@RyanWilson实际上我对代码进行了一些格式化,我认为它们已经在正确的位置了。@ADyson Ok。谢谢你格式化它。我想那不是问题所在。