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# 在Razor视图中使用列表-循环错误_C#_Asp.net Mvc_Razor_Foreach_Html.hiddenfor - Fatal编程技术网

C# 在Razor视图中使用列表-循环错误

C# 在Razor视图中使用列表-循环错误,c#,asp.net-mvc,razor,foreach,html.hiddenfor,C#,Asp.net Mvc,Razor,Foreach,Html.hiddenfor,我一直在努力让我的Razor视图页面返回一个列表。我正在将数据传递给连接到我的服务的控制器,以便为我检索数据。这是毫无疑问的 然而,当我将它传递到Razor视图页面时,它的对象出现了问题。我最后做了一个foreach循环,但有一些对象属性不应该被视为列表。当我尝试使用“@Html.HiddenFor(m=>m.State)”时,它不再工作,我的结果输出只是页面上的一堆循环。这是我第一次在这里使用列表,希望有人能建议一种方法,在我需要的某些区域执行foreach循环,然后对我不想迭代的属性执行Fi

我一直在努力让我的Razor视图页面返回一个列表。我正在将数据传递给连接到我的服务的控制器,以便为我检索数据。这是毫无疑问的

然而,当我将它传递到Razor视图页面时,它的对象出现了问题。我最后做了一个foreach循环,但有一些对象属性不应该被视为列表。当我尝试使用“@Html.HiddenFor(m=>m.State)”时,它不再工作,我的结果输出只是页面上的一堆循环。这是我第一次在这里使用列表,希望有人能建议一种方法,在我需要的某些区域执行foreach循环,然后对我不想迭代的属性执行FirstOrDefault,或者类似的操作,因为它们只是指示符(例如,isEmail=1)

[控制器]

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult GetFilters(MembershipVM model)
{                         
    var results = _service.GetFilters(model).ToArray().ToList();
    model.EmailCount = results.Count();

    if (model.EmailCount == 0)
    {
        TempData["ReturnType"] = "Failure";
        TempData["ReturnMessage"] = "No Members were found using the search criteria entered.";
        return RedirectToAction("Index", model);
    }
    else
    {
        return View("SendEmail", results); // passes list to Razor View
    }
}
[查看]

@using Otan.Models.Members
@using Otan.Web.Helpers
@model List<MembershipVM>

....
<div class="panel panel-default">
    <div class="panel-heading">
        <h3 class="bold panel-title">Filters Selected</h3>
    </div>
    <div class="panel-body">
        <ul>
            @if (Model.Zip.ToString() != 0)  @* I get an error here and with every other object in the model *@
            {
                @:<li>By proximity to ZIP Code: within <b>@Model.Distance</b> miles of Zip Code <b>@Model.Zip</b></li>
            }
....
            @Html.HiddenFor(m => m.State)  @* this does not work either unless I include a foreach loop *@
....
@使用Otan.Models.Members
@使用Otan.Web.Helpers
@模型列表
....
选择的过滤器
    @如果(Model.Zip.ToString()!=0)@*我在这里和模型中的所有其他对象都会出错*@ { @:
  • 靠近邮政编码:在邮政编码@Model.ZIP的@Model.Distance英里内
  • } .... @HiddenFor(m=>m.State)@*这也不起作用,除非我包含一个foreach循环*@ ....
短暂性脑缺血发作


--Daisy

尝试此代码您可以使用
Html.HiddenFor
,而无需将其包含在for-each循环中

@Html.HiddenFor(m=> Model.FirstOrDefault().State)
至于
if语句
,您可以像这样使用它

@if(Model.FirstOrDefault().Zip != 0)

对于堆栈溢出,不鼓励使用仅代码的答案,因为它们没有解释堆栈溢出是如何解决问题的。请编辑您的答案,以解释此代码的作用以及它如何回答问题,以便对OP以及具有类似问题的其他用户有用。我同意您@FluffyKitten的观点,但问题中的问题仅针对一行不起作用的特定代码。它可能只是一行,但这并不意味着你不能解释你的代码。请编辑问题,解释问题的作用以及如何解决问题。