2

我一直在努力在我的 Razor View 页面中返回一个列表。我正在将数据传递给我的控制器,该控制器连接到我的服务来为我检索数据。这没有问题。

但是,当我将它传递给我的 Razor View 页面时,它的对象有问题。我最终做了一个 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 *@
....

TIA

- 雏菊

4

1 回答 1

1

试试这个你可以使用的代码,Html.HiddenFor而无需将其包含在 for-each 循环中

@Html.HiddenFor(m=> Model.FirstOrDefault().State)

至于if statement你可以像这样使用它

@if(Model.FirstOrDefault().Zip != 0)
于 2020-08-18T18:58:31.820 回答