1

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

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

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

当我使用原始 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(免费版)。

4

2 回答 2

0

你能试试这样吗

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

于 2015-12-28T06:05:06.010 回答
0

这个问题与 input-validation-error 和被隐藏的小部件有关 - 我没有放在一起的一个步骤是该字段正在被验证并将其添加到标签输出中。诀窍是(如 Telerik 的文档中所述):

@using (Html.BeginForm()) {
    //omitted for brevity
}

<script type="text/javascript">
    $(function () {
        $(".k-widget").removeClass("input-validation-error");
    });
</script>

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

于 2015-12-28T03:27:19.693 回答