asp.net-mvc - ASP.Net MVC 强类型部分 View 和继承属性

标签 asp.net-mvc model-view-controller inheritance properties partial

我正在使用 MS MVC 3 构建一个 Web 应用程序并遇到了一个问题,这可能是由于我对模型绑定(bind)的理解存在漏洞。

首先,我有一个相当标准的模型(为简洁起见省略了不相关的东西,更改了名称以保护无辜对象的隐私):

public class ModelBase
{
    public int Id { get; set; }
}

 public class Order : ModelBase
{
    public List<Product> Products { get; set; }
}

public class Product : ModelBase
{
    public int OrderId { get; set;}
}

为了显示和编辑这些,我有一个强类型化到 Order 类的 View ,其中包含一个强类型化到 Product 类的部分 View 。部分 View 的顶部如下所示:

@model Product

@Html.ValidationSummary(true)
@Html.HiddenFor(model => model.Id)
@Html.HiddenFor(model => model.OrderId)
//loads of actual editable properties

我像这样将部分插入到主视图中:

@Html.Partial("EditorTemplates/Product", Model.Products.First())

...当 View 在浏览器中呈现时,“Id”隐藏输入包含订单的 Id,而不是我期望和需要的产品的 Id :(

我错过了什么?是否可以在不更改模型和 View 结构的情况下修复它?

最佳答案

在更改我的测试项目时,我可以确认

/Home/Index?id=33

/首页/索引/33

确实会覆盖模型值。你能从 url 中删除这个参数吗?

关于asp.net-mvc - ASP.Net MVC 强类型部分 View 和继承属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9064354/

相关文章:

python - 如何用抽象模型定义外键关系?

asp.net-mvc - 使用 Ninject.Web.Mvc 2.0 和 ASP.NET MVC 1.0 时出现错误 "More than one matching bindings are available"

asp.net-mvc - 如何在cshtml模板中创建函数?

ios - 从自定义 UIView 呈现 View Controller (xib 文件)

model-view-controller - MVC 架构中的用户输入来自哪里?

css - 如何将 CSS calc() 与继承一起使用?

asp.net-mvc - 在 ASP.NET MVC 中实现 "Remember Me"功能

c# - 如何在mvc中将复杂的键值参数从 View 传递到 Controller ?

javascript - 使用 jQuery MVC 将 SQL 表数据转换为 HTML 表

c# - 在虚函数中返回最派生类的新实例