如何在我的ASP.NET MVC视图中使用ViewBag属性?

时间:2019-07-09 11:56:51

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

我有一个配置页面,用于配置如下所示的API请求:

enter image description here

但是,如果尚未在另一个配置页面中配置“ 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)

但是这不起作用

还有其他建议吗?

预先感谢

2 个答案:

答案 0 :(得分:0)

您也可以尝试

第一个IEnumerableselectItemListCompany转换为列表,如下所示:

var data = selectItemListCompany.ToList();

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

答案 1 :(得分:0)

  

我当时想检查此列表是否为空,我这样做是为了   以下代码:

if(ViewBag.selectItemListCompany == null)

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

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