Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.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
C# 如何在MVC Net Core中编辑可枚举或列表视图_C#_Html_Asp.net Core_Asp.net Core Mvc_Asp.net Core 2.0 - Fatal编程技术网

C# 如何在MVC Net Core中编辑可枚举或列表视图

C# 如何在MVC Net Core中编辑可枚举或列表视图,c#,html,asp.net-core,asp.net-core-mvc,asp.net-core-2.0,C#,Html,Asp.net Core,Asp.net Core Mvc,Asp.net Core 2.0,如何为列表创建编辑视图 以下是单个项目的示例视图和模型,可以正常工作。 下一个问题是,我有一个要编辑的项目列表。我该怎么做 型号: public partial class ProductViewModel { public int ProductId { get; set; } public string ProductName { get; set; } public string ProductDescription { get; set; } public

如何为列表创建编辑视图

以下是单个项目的示例视图和模型,可以正常工作。 下一个问题是,我有一个要编辑的项目列表。我该怎么做

型号:

public partial class ProductViewModel
{
    public int ProductId { get; set; }
    public string ProductName { get; set; }
    public string ProductDescription { get; set; }
    public string ImageLocation { get; set; }
}
@model ProductViewModel

@{
    ViewData["Title"] = "Edit";
}

<h2>Edit</h2>

<h4>Product</h4>
<hr />
<div class="row">
    <div class="col-md-4">
        <form asp-action="Edit">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <input type="hidden" asp-for="ProductId" />
            <div class="form-group">
                <label asp-for="ProductName" class="control-label"></label>
                <input asp-for="ProductName" class="form-control" />
                <span asp-validation-for="ProductName" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="ProductDescription" class="control-label"></label>
                <input asp-for="ProductDescription" class="form-control" />
                <span asp-validation-for="ProductDescription" class="text-danger"></span>
            </div>
            <div class="form-group">
                <input type="submit" value="Save" class="btn btn-default" />
            </div>
        </form>
    </div>
</div>
using System.Collections.Generic;   

public class ShoppingCart : List<CartLine>
{
    public ShoppingCart() { }
    public ShoppingCart(IEnumerable<CartLine> collection) : base(collection) { }
    public ShoppingCart(int capacity) : base(capacity) { }
}    

public class ShoppingCartViewModel
{
    public ShoppingCart ShoppingCart { get; set; }
    public string ReturnUrl { get; set; }
}

public class CartLine
{
    public int CartLineId { get; set; }
    public Product Product { get; set; }
    public int Quantity { get; set; }
}
@model ShoppingCartViewModel
@{
    ViewData["Title"] = "Index";
}

<h2>Edit Shopping Cart</h2>

<h4>edit</h4>
<hr />
<div class="row">
    <div class="col-md-4">
        @foreach (var item in Model.ShoppingCart)
        {
            <form asp-action="Edit">
                <div asp-validation-summary="ModelOnly" class="text-danger"></div>
                <input type="hidden" asp-for="modelItem=>item.CartLineId" />
                <div class="form-group">
                    <label asp-for="modelItem=>item.Product.ProductName" class="control-label"></label>
                    <input asp-for="modelItem=>item.Product.ProductName" class="form-control" />
                    <span asp-validation-for="modelItem=>item.Product.ProductName" class="text-danger"></span>
                </div>
成功查看:

public partial class ProductViewModel
{
    public int ProductId { get; set; }
    public string ProductName { get; set; }
    public string ProductDescription { get; set; }
    public string ImageLocation { get; set; }
}
@model ProductViewModel

@{
    ViewData["Title"] = "Edit";
}

<h2>Edit</h2>

<h4>Product</h4>
<hr />
<div class="row">
    <div class="col-md-4">
        <form asp-action="Edit">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <input type="hidden" asp-for="ProductId" />
            <div class="form-group">
                <label asp-for="ProductName" class="control-label"></label>
                <input asp-for="ProductName" class="form-control" />
                <span asp-validation-for="ProductName" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="ProductDescription" class="control-label"></label>
                <input asp-for="ProductDescription" class="form-control" />
                <span asp-validation-for="ProductDescription" class="text-danger"></span>
            </div>
            <div class="form-group">
                <input type="submit" value="Save" class="btn btn-default" />
            </div>
        </form>
    </div>
</div>
using System.Collections.Generic;   

public class ShoppingCart : List<CartLine>
{
    public ShoppingCart() { }
    public ShoppingCart(IEnumerable<CartLine> collection) : base(collection) { }
    public ShoppingCart(int capacity) : base(capacity) { }
}    

public class ShoppingCartViewModel
{
    public ShoppingCart ShoppingCart { get; set; }
    public string ReturnUrl { get; set; }
}

public class CartLine
{
    public int CartLineId { get; set; }
    public Product Product { get; set; }
    public int Quantity { get; set; }
}
@model ShoppingCartViewModel
@{
    ViewData["Title"] = "Index";
}

<h2>Edit Shopping Cart</h2>

<h4>edit</h4>
<hr />
<div class="row">
    <div class="col-md-4">
        @foreach (var item in Model.ShoppingCart)
        {
            <form asp-action="Edit">
                <div asp-validation-summary="ModelOnly" class="text-danger"></div>
                <input type="hidden" asp-for="modelItem=>item.CartLineId" />
                <div class="form-group">
                    <label asp-for="modelItem=>item.Product.ProductName" class="control-label"></label>
                    <input asp-for="modelItem=>item.Product.ProductName" class="form-control" />
                    <span asp-validation-for="modelItem=>item.Product.ProductName" class="text-danger"></span>
                </div>
@model产品视图模型
@{
ViewData[“标题”]=“编辑”;
}
编辑
产品

现在,我有了一个带有项目列表的模型,如何在视图中访问它们?我想编辑我的购物车中的所有项目,更具体地说是数量。正在尝试正确调用委托linq查询

错误:

当前上下文中不存在名称“modelItem”

型号:

public partial class ProductViewModel
{
    public int ProductId { get; set; }
    public string ProductName { get; set; }
    public string ProductDescription { get; set; }
    public string ImageLocation { get; set; }
}
@model ProductViewModel

@{
    ViewData["Title"] = "Edit";
}

<h2>Edit</h2>

<h4>Product</h4>
<hr />
<div class="row">
    <div class="col-md-4">
        <form asp-action="Edit">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <input type="hidden" asp-for="ProductId" />
            <div class="form-group">
                <label asp-for="ProductName" class="control-label"></label>
                <input asp-for="ProductName" class="form-control" />
                <span asp-validation-for="ProductName" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="ProductDescription" class="control-label"></label>
                <input asp-for="ProductDescription" class="form-control" />
                <span asp-validation-for="ProductDescription" class="text-danger"></span>
            </div>
            <div class="form-group">
                <input type="submit" value="Save" class="btn btn-default" />
            </div>
        </form>
    </div>
</div>
using System.Collections.Generic;   

public class ShoppingCart : List<CartLine>
{
    public ShoppingCart() { }
    public ShoppingCart(IEnumerable<CartLine> collection) : base(collection) { }
    public ShoppingCart(int capacity) : base(capacity) { }
}    

public class ShoppingCartViewModel
{
    public ShoppingCart ShoppingCart { get; set; }
    public string ReturnUrl { get; set; }
}

public class CartLine
{
    public int CartLineId { get; set; }
    public Product Product { get; set; }
    public int Quantity { get; set; }
}
@model ShoppingCartViewModel
@{
    ViewData["Title"] = "Index";
}

<h2>Edit Shopping Cart</h2>

<h4>edit</h4>
<hr />
<div class="row">
    <div class="col-md-4">
        @foreach (var item in Model.ShoppingCart)
        {
            <form asp-action="Edit">
                <div asp-validation-summary="ModelOnly" class="text-danger"></div>
                <input type="hidden" asp-for="modelItem=>item.CartLineId" />
                <div class="form-group">
                    <label asp-for="modelItem=>item.Product.ProductName" class="control-label"></label>
                    <input asp-for="modelItem=>item.Product.ProductName" class="form-control" />
                    <span asp-validation-for="modelItem=>item.Product.ProductName" class="text-danger"></span>
                </div>
使用System.Collections.Generic;
公共类ShoppingCart:列表
{
公共购物车(){}
公共购物车(IEnumerable集合):基本(集合){}
公共购物车(整数容量):基本(容量){}
}    
公共类ShoppingCartViewModel
{
公共购物车购物车{get;set;}
公共字符串ReturnUrl{get;set;}
}
公共类CartLine
{
公共int CartLineId{get;set;}
公共产品产品{get;set;}
公共整数数量{get;set;}
}
视图不工作,输入类型出现以下错误,并进一步说明:

public partial class ProductViewModel
{
    public int ProductId { get; set; }
    public string ProductName { get; set; }
    public string ProductDescription { get; set; }
    public string ImageLocation { get; set; }
}
@model ProductViewModel

@{
    ViewData["Title"] = "Edit";
}

<h2>Edit</h2>

<h4>Product</h4>
<hr />
<div class="row">
    <div class="col-md-4">
        <form asp-action="Edit">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <input type="hidden" asp-for="ProductId" />
            <div class="form-group">
                <label asp-for="ProductName" class="control-label"></label>
                <input asp-for="ProductName" class="form-control" />
                <span asp-validation-for="ProductName" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="ProductDescription" class="control-label"></label>
                <input asp-for="ProductDescription" class="form-control" />
                <span asp-validation-for="ProductDescription" class="text-danger"></span>
            </div>
            <div class="form-group">
                <input type="submit" value="Save" class="btn btn-default" />
            </div>
        </form>
    </div>
</div>
using System.Collections.Generic;   

public class ShoppingCart : List<CartLine>
{
    public ShoppingCart() { }
    public ShoppingCart(IEnumerable<CartLine> collection) : base(collection) { }
    public ShoppingCart(int capacity) : base(capacity) { }
}    

public class ShoppingCartViewModel
{
    public ShoppingCart ShoppingCart { get; set; }
    public string ReturnUrl { get; set; }
}

public class CartLine
{
    public int CartLineId { get; set; }
    public Product Product { get; set; }
    public int Quantity { get; set; }
}
@model ShoppingCartViewModel
@{
    ViewData["Title"] = "Index";
}

<h2>Edit Shopping Cart</h2>

<h4>edit</h4>
<hr />
<div class="row">
    <div class="col-md-4">
        @foreach (var item in Model.ShoppingCart)
        {
            <form asp-action="Edit">
                <div asp-validation-summary="ModelOnly" class="text-danger"></div>
                <input type="hidden" asp-for="modelItem=>item.CartLineId" />
                <div class="form-group">
                    <label asp-for="modelItem=>item.Product.ProductName" class="control-label"></label>
                    <input asp-for="modelItem=>item.Product.ProductName" class="form-control" />
                    <span asp-validation-for="modelItem=>item.Product.ProductName" class="text-danger"></span>
                </div>
@model ShoppingCartViewModel
@{
ViewData[“标题”]=“索引”;
}
编辑购物车
编辑

@foreach(Model.ShoppingCart中的var项) {
您不需要在asp标记帮助程序中使用模型表达式。您可以使用
@
符号直接在foreach循环中访问项目

因此,它将取代
asp for=“modelItem=>item.Product.ProductName”
而成为
asp for=“@item.Product.ProductName”

@foreach(Model.ShoppingCart中的var项)
{
}
有关更多信息,请查看