2011-03-26 52 views
0

我有一个问题,经过2小时的尝试&错误&谷歌我来这里问。MVC 3更新页面使用日期选择器

我很新的Web开发和新的Ajax。

我有一个jQuery用户界面的日期选择器一个简单的页面,并呈现一个动作一个div:

@using (Html.BeginForm()) 
{ 
    <div id="datepicker"></div>  
} 

<h2>Lista de trabajos</h2> 

<div id="trabajos"> 
    @Html.Action("List", "Trabajo", new { dia = Model.Fecha }) 
</div> 

到目前为止好。我想点击datapicker上的日期(通过脚本配置它),然后再次使用@model上的另一个日期调用此操作。

的问题是,如果我用这个:

  onSelect: function (dateText, inst) { 
       $("form").submit(); 
      } 

它完全后,当我点击一个日期,但如果我使用:

  onSelect: function (dateText, inst) { 
       $("form").submit(function (e) { }); 
      } 

它不会再发布。

作为新手,我试图一步一步完成它。我试图只发布(现在没有阿贾克斯),并发送新的日期到我的控制器,所以:

我如何发送数据(我认为dateText是我想发送)我的行动(谁期待串)。当我完成的时候,我会去阿贾克斯,但如果我不能将日期发送到动作并刷新以获得新模型...

任何帮助?

谢谢。

回答

0

下面的代码:

$("form").submit(); 

触发立即和岗位事件提交给服务器。

下面的代码:

$("form").submit(function (e) { 

}); 

简单地重新定义了submit处理程序,但不会立即提交。你需要点击提交按钮,然后调用匿名函数(这是空的,最终会执行正常的提交,但你需要点击提交按钮)。所以,如果你想使用AJAX:

onSelect: function (dateText, inst) { 
    var form = $(form); 
    $.ajax({ 
     url: form.attr('action'), 
     type: form.attr('method'), 
     data: form.serialize(), 
     success: function(result) { 
      // the form was successfully sent to the server using an AJAX call 
      // do something with the result 
     } 
    }); 
    return false; 
} 
+0

@Jesus罗德里格斯,你可以像这样把它:'数据:{日期:dateText}'和你的控制器动作使用相同的参数名称'公众的ActionResult美孚(日期时间日期)',它将填入选定的日期。 – 2011-03-26 18:31:49

+0

谢谢你,我看到并删除了我的评论:P – 2011-03-26 18:35:04

0

第二种形式是为提交事件添加处理程序,而不是提交表单。如果您想使用ajax发布表单,则应使用post方法。

onSelect: function (dateText, inst) { 
      var $form = $('form'); 
      $.post($form.attr('action'), $form.serialize(), function(result) { 
       // do something with the result of the post request 
      }); 
      } 
相关问题