Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 2 如何从同一视图更新一对多关系实体?_Asp.net Mvc 2 - Fatal编程技术网

Asp.net mvc 2 如何从同一视图更新一对多关系实体?

Asp.net mvc 2 如何从同一视图更新一对多关系实体?,asp.net-mvc-2,Asp.net Mvc 2,表产品 产品Id 产品名称 表供应商 供货商朝码 产品ID 供应商名称 当我创建一个新产品时,我希望有一个文本框在同一视图中输入一个供应商。这是一种好的做法吗?因为产品可以有很多供应商,所以我希望能够从同一个视图中添加更多的供应商记录我该怎么做 我想知道我在aspx页面上放了什么 如果我放置类似model.Supplier的内容%>我会看到一个文本框,其中包含System.Data.Objects.DataClasses.EntityCollection`1[MyProject.Mvc.Mode

产品 产品Id 产品名称

供应商 供货商朝码 产品ID 供应商名称

当我创建一个新产品时,我希望有一个文本框在同一视图中输入一个供应商。这是一种好的做法吗?因为产品可以有很多供应商,所以我希望能够从同一个视图中添加更多的供应商记录我该怎么做

我想知道我在aspx页面上放了什么

如果我放置类似model.Supplier的内容%>我会看到一个文本框,其中包含System.Data.Objects.DataClasses.EntityCollection`1[MyProject.Mvc.Models.Supplier]

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master"  
Inherits="System.Web.Mvc.ViewPage<MyProject.Mvc.Models.ProductFormViewModel>" %>
<%= Html.ValidationSummary("Please correct the errors and try again.") %>
<% using (Html.BeginForm()) {%>
<fieldset>
<legend>Fields</legend>

<div class="editor-label">
    <%= Html.LabelFor(model => model.Product.ProductId) %>
</div>
<div class="editor-field">
    <%= Html.TextBoxFor(model => model.Product.ProductId) %>
    <%= Html.ValidationMessageFor(model => model.Product.ProductId) %>
</div>

<div class="editor-label">
    <%= Html.LabelFor(model => model.Product.ProductName) %>
</div>
<div class="editor-field">
    <%= Html.TextBoxFor(model => model.Product.ProductName) %>
    <%= Html.ValidationMessageFor(model => model.Product.ProductName) %>
</div>

<div class="editor-label">
    <%= Html.LabelFor(model => model.Product.Description) %>
</div>
<div class="editor-field">
    <%= Html.TextBoxFor(model => model.Product.Description) %>
    <%= Html.ValidationMessageFor(model => model.Product.Description) %>
</div>            
<p>
    <input type="submit" value="Create" />
</p>
</fieldset>

<% } %>

领域
model.Product.ProductId)%%>
model.Product.ProductId)%%>
model.Product.ProductId)%%>
model.Product.ProductName)%%>
model.Product.ProductName)%%>
model.Product.ProductName)%%>
型号.产品.说明)%>
型号.产品.说明)%>
型号.产品.说明)%>

ProductViewModel

public class ProductFormViewModel
{
    public Product Product{ get; private set; }
    public IEnumerable<Supplier> Supplier { get; private set; }

    public ProductFormViewModel()
    {
        Product = new Product();
    }

    public ProductFormViewModel(Product product)
    {
        Product = product;
        Supplier = product.Supplier;
    }
}
公共类ProductFormViewModel
{
公共产品产品{get;private set;}
公共IEnumerable提供程序{get;private set;}
公共产品FormViewModel()
{
产品=新产品();
}
公共产品FormViewModel(产品)
{
产品=产品;
供应商=产品。供应商;
}
}

我想你会发现它非常有用。他还有另一个。

简而言之,我想添加一个新产品,在产品创建视图中,我想添加第一个供应商。然后可能从产品的编辑视图中,我应该能够添加其他供应商。单击编辑视图上的某个内容将弹出一个文本框,输入新供应商,提交后将更新产品的供应商。产品和供应商有一对多的关系。啊!我在MVC的周围度过了一段艰难的时光。很多时候,我都想用网络表单来做,但我不想放弃。