Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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# 如何在HttpPost的模型中保留列表对象?_C#_Asp.net Mvc_Razor - Fatal编程技术网

C# 如何在HttpPost的模型中保留列表对象?

C# 如何在HttpPost的模型中保留列表对象?,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我有一个包含自定义类型列表的模型 我希望当模型作为HttpPost调用控制器提交时,此类型的数据会传回 然而,它似乎并没有达到我想要的效果。到目前为止,我已经达到了目标,但我遇到了一个问题 我的控制器方法: [HttpPost] public ActionResult UpdateStock(int id, ProductModel model) { return View("UpdateStock", model); } 现在,视图如下所示(修

我有一个包含自定义类型列表的模型

我希望当模型作为
HttpPost
调用控制器提交时,此类型的数据会传回

然而,它似乎并没有达到我想要的效果。到目前为止,我已经达到了目标,但我遇到了一个问题

我的控制器方法:

    [HttpPost]
    public ActionResult UpdateStock(int id, ProductModel model)
    {
        return View("UpdateStock", model);
    }
现在,视图如下所示(修剪):

@使用(Html.BeginForm())
{

@Html.HiddenFor(m=>m.ProductNo) @Html.LabelFor(m=>m.ProductName) @Html.EditorFor(m=>m.ProductName) @对于(int i=0;i
我的问题是,
@Html.EditorFor()
标记似乎彼此不太协调。如果我像上面那样使用它,那么使用
@Html
方法的
ProductNo
和其他属性将不会传递给模型


非常感谢您的建议。

我只想使用编辑器模板:

型号:

public class ProductModel 
{
    public string ProductNo { get; set; }
    public string ProductName { get; set; }
    public IEnumerable<Stock> Stocks { get; set; }
}

public class Stock
{
    public string Key { get; set; }
    public string Value { get; set; }
}
视图:

public class ProductModel 
{
    public string ProductNo { get; set; }
    public string ProductName { get; set; }
    public IEnumerable<Stock> Stocks { get; set; }
}

public class Stock
{
    public string Key { get; set; }
    public string Value { get; set; }
}
public class HomeController: Controller
{
    public ActionResult Index()
    {
        var model = new ProductModel 
        {
            ProductNo = "123",
            ProductName = "p name",
            Stocks = new[]
            {
                new Stock { Key = "key1", Value = "value1" },
                new Stock { Key = "key2", Value = "value2" },
            }
        };
        return View(model);
    }

    [HttpPost]
    public ActionResult Index(ProductModel model)
    {
        ...
    }
}
@model ProductModel
@using (Html.BeginForm())
{
    <p>
        <input type="submit" value="Save" />
    </p>

    @Html.HiddenFor(m => m.ProductNo)

    <div class = "title">
        @Html.LabelFor(m => m.ProductName)
        @Html.EditorFor(m => m.ProductName)
    </div>

    @Html.EditorFor(x => x.Stocks)
}
@model Stock
<div class="editor-field">
    @Html.EditorFor(x => x.Key)
</div>
<div class="editor-field">
    @Html.EditorFor(x => x.Value)
</div>