NumericTextBox使用Html.TextBoxFor而不是HTML丢失了值

时间:2015-12-28 03:03:50

标签: javascript asp.net asp.net-mvc kendo-ui kendonumerictextbox

当我使用带有Html.TextBoxFor的Kendo UI Core小部件(用于数字文本框编辑,特别是输入美元金额)时,如下所示:

@Html.TextBoxFor(i => i.TotalAmount, new { @class = "currency-editor", min = "0", })

在回发和处理数据时,值回发为空,因此在控制器中完成的服务器端代码检查失败,因为没有回发任何内容。

当我使用Raw HTML时:

<input type="text" id="@Html.IdFor(i => i.TotalAmount)" name="@Html.IdFor(i => i.TotalAmount)" value="@Model.TotalAmount"
       class="currency-editor" min="0" />

它运作得很好。我不知道区别是什么?初始化插件(初始化没有问题)是:

$(".currency-editor").kendoNumericTextBox({
            format: "c2",
            decimals: 2,
            spinners: false
         });

显然,TextBoxFor插件内部出现了一些内容,可能是特定于验证的吗? MVC 5,2015 Q3 Kendo UI Core(免费版)。

2 个答案:

答案 0 :(得分:0)

问题与输入验证错误和隐藏的小部件有关 - 我没有放在一起的一步是该字段正在验证并且这已添加到标记输出中。诀窍是(如Telerik的文档中所述):

A

参考此处: http://docs.telerik.com/kendo-ui/aspnet-mvc/validation#the-widgets-are-hidden-after-a-postback-when-using-the-jquery-validation

答案 1 :(得分:0)

你可以这样尝试吗

<script>
    $(".currency-editor").kendoNumericTextBox({
        format: "c2",
        decimals: 2,
        spinners: false,
        value : @Model.TotalAmount
     });