asp.net-mvc – 模型绑定不起作用
发布时间:2020-05-24 12:23:44 所属栏目:asp.Net 来源:互联网
导读:我有以下POCO课程: public class Location { public int LocationId { get; set; } public string Name { get; set; } public string Street { get; set; } public string City { get
|
我有以下POCO课程: public class Location
{
public int LocationId { get; set; }
public string Name { get; set; }
public string Street { get; set; }
public string City { get; set; }
public string State { get; set; }
public string ZipCode { get; set; }
public string Country { get; set; }
public float? Latitude { get; set; }
public float? Longitude { get; set; }
public string PhoneNumber { get; set; }
public string EmailAddress { get; set; }
public string Website { get; set; }
public virtual ICollection<Program> Programs { get; set; }
public virtual ICollection<PlayerType> PlayerTypes { get; set; }
}
public class PlayerType
{
public int PlayerTypeId { get; set; }
public string Name { get; set; }
public int SortOrder { get; set; }
public bool IsActive { get; set; }
public virtual ICollection<Location> Locations { get; set; }
}
和视图模型类 public class LocationViewModel
{
public Location Location { get; set; }
public IList<PlayerType> SelectPlayerTypes { get; set; }
public LocationViewModel()
{
Location = new Location();
}
}
在我的创建表单中,我已将模型定义为 @model Locator.Models.LocationViewModel 并有以下字段: div class="editor-label">
@Html.LabelFor(model => model.Location.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Location.Name)
@Html.ValidationMessageFor(model => model.Location.Name)
</div>
在我的控制器中处理我的POST [HttpPost]
public ActionResult Create(LocationViewModel location)
{
if (ModelState.IsValid) {
locationRepository.InsertOrUpdate(location.Location);
locationRepository.Save();
return RedirectToAction("Index");
}
location.SelectPlayerTypes = golferTypeRepository.All.Where(p => p.IsActive).ToList();
return View(location);
}
问题是我有一个Location对象,但没有任何属性设置为在表单中输入的值. 我在这里做错了吗? 谢谢 解决方法这是问题所在:[HttpPost] public ActionResult Create(LocationViewModel location) 你看到了吗?它是您的动作参数的名称:位置. 现在看一下你的视图模型,它有一个名为Location的属性: public Location Location { get; set; }
这会混淆模型绑定器.它不再知道您是否需要绑定LocationViewModel或其属性. 所以只需重命名以避免冲突: [HttpPost] public ActionResult Create(LocationViewModel model) (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 使用GhostScript将PDF转换为服务器上的图像集合
- asp.net-mvc – 在asp.net mvc中实现stackoverflow样式徽章
- asp.net-core – Netcore 2.1.1版本导致应用程序无法运行
- asp.net – 使用Active Directory的REST API的授权方法
- ASP.NET Web API:OAuth服务提供商
- asp.net-mvc – 为什么我的ActionFilters都没有运行?
- asp.net-mvc – MVC5 Html.RenderAction与不同的控制器
- asp.net-mvc – Ninject.Extensions.Logging.nlog2 – 如何
- asp.net – ASP .Net Web API下载图像为二进制
- asp.net-mvc-4 – 如何在视图页面上缩小脚本块内的JavaScri
