获取ViewBag的干净值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取ViewBag的干净值相关的知识,希望对你有一定的参考价值。

在控制器中我设置了值:

ViewBag.incremento = 5;

我有以下视图:

@model IEnumerable<Gestor.Models.PlanejVenda>

@{
ViewBag.Title = "Índice";
Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Índice</h2>

<p>
@Html.ActionLink("Criar novo planejamento de compra", "Create")
</p>

<div class="row">
    <div class="col-md-6">
        @using (Html.BeginForm("Search", "PlanejVendas", FormMethod.Post))
        {
            <p>
                Código: @Html.TextBox("search")
                <input type="submit" value="Procurar" />
            </p>
        }
    </div>
    <div class="col-md-6">
        @using (Html.BeginForm("Search", "PlanejVendas", FormMethod.Post))
        {
            <p>
                Incremento Global: @Html.TextBox("search", new {@ViewBag.incremento })
                <input type="submit" value="Confirmar" />
            </p>
        }
    </div>
</div>

<table class="table table-hover">
    <tr>

    Regula table here showing Ok

我期待我将拥有文本框内控制器设置的清理值5。但它显示:“{incremento = 5}”而不是

Showing more then the Viewbag

如何才能获得ViewBag的值,在示例中只是数字5?

答案

ViewBagTextBox分开。 ViewBag返回您需要转换为正确类型的对象集合。

为了测试忽略ViewBag并使用常量。

new正在做的是创建匿名类型而不是值。尝试

@Html.TextBox("search", "5")

如果有效,那么将ViewBag项目转换为字符串,因为D-Shih的答案暗示......

另一答案

你可以试试。

@Html.TextBox("search", (string)@ViewBag.incremento)

代替

@Html.TextBox("search", new { @ViewBag.incremento })
另一答案

试试这个:

Incremento Global: @Html.TextBox("search", new { @value= ViewBag.incremento })

以上是关于获取ViewBag的干净值的主要内容,如果未能解决你的问题,请参考以下文章

之API 数据获取-自定义函数使用

如何从 ViewBag 中获取布尔值?

Viewbag获取空值

在 Jquery 中调用 ViewBag 以从控制器中获取值

量化交易之开篇

为什么该ViewBag不通过其分配的值?