Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.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/2/unit-testing/4.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# 通过';列表';在视图中建模和建模_C#_Asp.net Mvc - Fatal编程技术网

C# 通过';列表';在视图中建模和建模

C# 通过';列表';在视图中建模和建模,c#,asp.net-mvc,C#,Asp.net Mvc,不知是否有人能给我指出正确的方向 基本上,我正在尝试创建一个页面,允许某人输入数据(高尔夫)的数量(18)的洞,基本上我不确定它是如何做到的 在模型中,我创建了以下内容: namespace BGSociety.Models { public class CreateCourseHolesViewModel { public int holeNumber { get; set; } public int par { get; set; } public int si {

不知是否有人能给我指出正确的方向

基本上,我正在尝试创建一个页面,允许某人输入数据(高尔夫)的数量(18)的洞,基本上我不确定它是如何做到的

在模型中,我创建了以下内容:

namespace BGSociety.Models
{
public class CreateCourseHolesViewModel
{
    public int holeNumber { get; set; }
    public int par { get; set; }
    public int si { get; set; }
    public int distance { get; set; }
}

}
在控制器的索引事件中,我得到:

TempData[“holes”]=getHoles()

protectedlist getHoles()
{
var holes=新列表();
对于(int i=1;i<19;i++)
{
添加(新的CreateCourseHolesViewModel{holeNumber=i});
}
回流孔;
}
我将此信息传递到视图中:

返回PartialView(“CreateCourseHoles”,TempData[“holes”])

在视图中,我可以循环遍历列表,并在每一个文本框旁边显示一个文本框,以允许输入PAR、SI和距离。

    var zHoles = TempData["holes"] as IEnumerable<BGSociety.Models.CreateCourseHolesViewModel>;
    foreach (var hole in zHoles)
    {
        <div class="row">
            <div class="col-sm-1">
                <p>@hole.holeNumber</p>
            </div>
            <div class="col-sm-6">
                <div class="form-group">
                    <div class="col-xs-12">
                        @Html.ValidationMessageFor(m => hole.par)
                        @Html.TextBox("par", TempData["par"], new { @class = "form-control", placeholder = "Par", name = "Par" })
                    </div>
                </div> 
            </div>
        </div>
    }
var zHoles=TempData[“holes”]作为IEnumerable;
foreach(Z孔中的var孔)
{
@hole.holeNumber

@Html.ValidationMessageFor(m=>hole.par) @TextBox(“par”,TempData[“par”],new{@class=“form control”,placeholder=“par”,name=“par”}) }
但我就是不知道如何将这个填充的列表传递回控制器,以便将数据输入数据库

我很有可能是走错了方向(!),但如果有人能抽出几分钟来帮忙,那就太好了

谢谢,
Sx

TempData不能作为参数传递给PartialView。即使您不将其作为参数传递;您仍然可以访问它。我建议您改为这样做:

return PartialView("CreateCourseHoles", getHoles());
那你就可以有你的局部观点了

@model IEnumerable<BGSociety.Models.CreateCourseHolesViewModel>
@model IEnumerable
并将所有for循环包装为一个表单:

 <form method="post" action="wherever you want to post it to">

foreach (var hole in Model)
    {
        <div class="row">
            <div class="col-sm-1">
                <p>@hole.holeNumber</p>
            </div>
            <div class="col-sm-6">
                <div class="form-group">
                    <div class="col-xs-12">
                        @Html.ValidationMessageFor(m => hole.par)
                        @Html.TextBox("par", TempData["par"], new { @class = "form-control", placeholder = "Par", name = "Par" })
                    </div>
                </div> 
            </div>
        </div>
    }

</form>

foreach(模型中的var孔)
{
@hole.holeNumber

@Html.ValidationMessageFor(m=>hole.par) @TextBox(“par”,TempData[“par”],new{@class=“form control”,placeholder=“par”,name=“par”}) }
为这句话干杯,但我仍然看不到模型中的18组数据,我只能看到第一组。当它被发回控制器时,我的意思是首先,您不能使用
foreach
循环为集合项生成表单控件(请参阅说明)。但你做的其他事情没有任何意义。不要使用
TempData
,在get方法中,初始化集合并将其传递给视图。
 <form method="post" action="wherever you want to post it to">

foreach (var hole in Model)
    {
        <div class="row">
            <div class="col-sm-1">
                <p>@hole.holeNumber</p>
            </div>
            <div class="col-sm-6">
                <div class="form-group">
                    <div class="col-xs-12">
                        @Html.ValidationMessageFor(m => hole.par)
                        @Html.TextBox("par", TempData["par"], new { @class = "form-control", placeholder = "Par", name = "Par" })
                    </div>
                </div> 
            </div>
        </div>
    }

</form>