【问题标题】:How to use ViewBag properties inside my ASP.NET MVC View?如何在我的 ASP.NET MVC 视图中使用 ViewBag 属性?
【发布时间】:2019-11-18 23:32:14
【问题描述】:

我有一个配置页面来配置这样的 API 请求:

但是,如果尚未在另一个配置页面中配置“Klant”,则无法配置 API 请求。因此,我想在调用模态时检查“Klant”是否在我的视图中为空。如果“Klant”为空,我想弹出带有错误消息的警报,如果“Klant”不为空,我想显示上面的模型。

模态框由一个按钮调用,代码如下:

 <a href="#" class="btn btn-primary" data-toggle="modal" data-target="#myModal">Voeg API toe</a>

比它调用这个模态:

            <!--MODAL-->
        <div class="modal fade" id="myModal">
                <div class="modal-dialog" style="width: 20%;">
                    <div class="modal-content">
                        <div class="modal-header">
                            <a href="#" class="close" data-dismiss="modal">&times;</a>
                            <h3 class="modal-title">API toevoegen</h3>
                        </div>
                        <div class="modal-body">
                            <form id="myForm">
                                <p><b>Klant</b></p>
                                <p>@Html.DropDownList("Company.CompanyName", (IEnumerable<SelectListItem>)ViewBag.selectItemListCompany, new { @class = "form-control" })</p>
                                <p><b>Mapping</b></p>
                                <p>@Html.DropDownList("MappingName.Name", (IEnumerable<SelectListItem>)ViewBag.selectItemListMapping, new { @class = "form-control" })</p>
                                <p><b>API</b></p>
                                <p>@Html.TextBoxFor(model => model.FirstOrDefault().ApiName, new { @class = "form-control", @placeholder = "Naam", autocomplete = "off", Value = "" })</p>
                                <p>@Html.TextBoxFor(model => model.FirstOrDefault().ApiURL2, new { @class = "form-control", @placeholder = "URL", autocomplete = "off", Value = "" })</p>
                                <p><b>Output</b></p>
                                <p>
                                    JSON
                                    @Html.RadioButtonFor(model => model.FirstOrDefault().ResponseType, "json", new { Checked = "checked" })
                                    XML
                                    @Html.RadioButtonFor(model => model.FirstOrDefault().ResponseType, "xml")
                                </p>
                            </form>
                        </div>
                        <div class="modal-footer">
                            <a href="#" class="btn btn-default" data-dismiss="modal">Cancel</a>
                            <input type="reset" value="Submit" class="btn btn-success" id="btnSubmit" />
                        </div>
                    </div>
                </div>
        </div>

“Klant”的 DropDownList 被一个名为 ViewBag.selectItemListCompany 的 ViewBag 填充。我正在考虑检查此列表是否为空,我使用以下代码进行了此操作:

if(ViewBag.selectItemListCompany == null)

然而这不起作用,

大家有其他建议吗?

提前致谢

【问题讨论】:

    标签: c# asp.net model-view-controller view viewbag


    【解决方案1】:

    你也可以试试这个,

    第一个 IEnumerableselectItemListCompany 转换成列表如下:

    var data = selectItemListCompany.ToList();

    然后检查列表的计数 if(data.count > 0) 并执行所需的逻辑。

    【讨论】:

      【解决方案2】:

      我正在考虑检查此列表是否为空,我这样做了 以下代码:

      if(ViewBag.selectItemListCompany == null)
      

      该代码正在检查列表是否为空,而不是空。如果要检查列表是否为空,则需要查看它是否包含任何元素。我们可以为此使用.Any() 并否定结果。

      @if (ViewBag.selectItemListCompany == null || !ViewBag.selectItemListCompany.Any())
      {
      }
      

      【讨论】:

      • 我需要在哪里设置这个 if 语句?在我的模态周围还是在里面?
      • 我也收到以下错误:“'System.Web.Mvc.SelectList' 不包含'Any'的定义”
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多