托管在远程服务器jQuery Mobile MVC上时,表单字段值不会绑定到模型

时间:2013-02-22 14:59:15

标签: c# asp.net-mvc jquery-mobile asp.net-mvc-4

我的jQuery mobile \ MVC应用程序有点奇怪的问题,到目前为止我还无法追踪到。

在我看来,我有2个HTML.HiddenFor字段。发布表单时,这些字段中的值绑定到我的控制器中的模型类的属性。属性为Double类型。 在我的本地开发机器上发布表单时,值绑定ok。但是,当我的应用程序部署到远程服务器时,模型绑定停止工作,并且使其再次工作的唯一方法是将属性类型从Double更改为字符串。

这是我的模特: -

 public class HomeViewModel
{
    public Double Latitude                  { get; set; }   //form value binds locally but does not bind on remote server
    public Double Longitude                 { get; set; }   //form value binds locally but does not bind on remote server
    public string LatitudeStr               { get; set; }   //form value binds 
    public string LongitudeStr              { get; set; }   //form value binds

以下是我的观点: -

 @using (Html.BeginForm("Index","Branches", FormMethod.Post, new { ID = "frmSearch", data_transition = "none" })){       
   @Html.HiddenFor(model => model.Latitude, new { id = "hdnLat" })  
   @Html.HiddenFor(model => model.Longitude, new { id = "hdnLong" })  

这是我的控制器: -

  [HttpPost]
    public ActionResult Index(HomeViewModel model)
    {

当我在提交表单后检查页面时,我可以看到输入验证错误类已被附加到隐藏元素:

查看Firebug中的帖子信息我可以看到已发布的值。

以上工作在本地很好,但不能从远程服务器运行。

据我所知,当本地和远程运行时,完全相同的值会回发到服务器

如果有人能够阐明这个

,那就太好了

1 个答案:

答案 0 :(得分:0)

包含隐藏字段的验证程序。您可能正在获取您不知道的验证消息,或者设置验证摘要以显示模型错误。我之前有一个类似浮动的问题,服务器上的文化与使用逗号作为分隔符的客户端发生冲突,这可能就是为什么它在解析Double时不再失败的原因。