如何从视图中获取ViewBag?总是返回null

时间:2019-04-13 20:40:32

标签: c# .net asp.net-mvc

在控制器中,我执行一个ViewBag,然后将其传输到视图,然后在其中填充数据并希望在发布请求中发送它,但是viewbag返回null,如何从ViewBag返回所选数据< / p>

2 个答案:

答案 0 :(得分:2)

对不起,但是抱歉,这不是应该使用ViewBag变量的方式。它用于从Controller到视图(在客户端上)共享少量数据,而不是相反。

要将数据返回服务器,您需要明确地从客户端视图中将请求中需要的数据回发到服务器。

让我们分解一下

 @foreach (var item in ViewBag.List)
                        {
                            <option value="@item.Id">@item.Name</option>
                        }

在上面的代码中,ViewBag应该作为动态变量存在,并且如果在客户端请求视图时在视图包对象中设置了List,它将包含您放置在其中的所有数据。

<button class="btn" type="submit" name="action">
                        Submit
                    </button>

在这里,在上面的html中,您现在尝试回发选择的任何选项。您将需要在此处指定一个端点,该端点将接收表单数据并执行所需的任何操作

答案 1 :(得分:0)

我将从MODEL中获取更多数据

模型

 public string Name{ get; set; }

查看

@model IEnumerable<*YourProjectName*.Models.*ModelName*>

上面的代码,在* *之间将其更改为正确的项目名称和型号名称。 编写@model

后,它应该自动执行
 @foreach (var item in Model)
        {
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => item.Name)
                </td>
            </tr>
        }