【问题标题】:asp.net mvc: Get javascript floating point number into hidden inputasp.net mvc:将javascript浮点数获取到隐藏输入中
【发布时间】:2011-07-19 12:04:35
【问题描述】:

我正在尝试使用从地图控件中检索到的 2 个值将我的模型发送回控制器。我认为最好的解决方案是将这些值放在隐藏输入“Html.hiddenfor()”中,以便控制器接收模型中的值。

这是我的 JavaScript

endDragDetails = function (e) {
    alert("Event Info - start drag \n" + "Start Latitude/Longitude: " + e.entity.getLocation());
    var locationx = e.entity.getLocation();
    alert(locationx.latitude);
    document.getElementById("longitude").value = parseFloat(locationx.longitude);
}

警报框显示 locationx var 中有一个浮点值。我试过用 parseFloat() 函数传递它以防浮点数实际上是一个字符串。经度的 id 确实是“经度”,我在 html 源代码中检查过。

这是我的cshtml部分

@Html.HiddenFor(m => m.longitude);

我得到的只是一个 0,0。 我在这个解决方案中遗漏了什么吗?

UPDATE 如果我用 @Html.TextBoxFor(m => m.longitude) 更改 hiddenfor,它会在执行 javascript 方法后在我的文本框中显示经度。但是它不会将其发送到控制器,该值保持为 0,0。但是,它确实将我的所有其他值(例如名字字符串,...)发送到控制器。

【问题讨论】:

    标签: javascript asp.net-mvc asp.net-mvc-3 floating-point


    【解决方案1】:

    我刚刚快速检查了您的操作,一切看起来都还不错。但是,我对您从 locationx.longitude 获得的值有点怀疑,因为您无法将 0,0 或类似的浮点数解析为浮点数。并且您在分配给隐藏字段时不需要这样做,因为它无论如何都会将其作为字符串处理。

    【讨论】:

    • 感谢您的回复西。我解决了这个问题。它与我的 NL CurrentUICulture 有关。我将其更改为 EN,并且效果很好。在 NL 中,浮点数是这样写的 5,34 在 EN UIculture 中是这样写的 5.34。 UICulture 没有影响模型,这是一个新的挑战。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-20
    • 2012-07-07
    • 2018-03-08
    • 2013-08-18
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多