如何将选定日期从datepicker发送到控制器?

时间:2012-11-16 06:56:52

标签: jquery asp.net-mvc-3

当用户选择日期时,如何使用这段jquery代码从datePicker中获取日期,然后使用BeginForm()将日期作为字符串发送到控制器?如何访问我的razor和asp.net代码使用的标签之间的代码?

以下是我在论坛上发表的一些提示但尝试没有运气的尝试。

<script type="text/javascript">

    $(function () {
        onSelect: Function(dateText, inst); 
        {
            var theDate = $("#date").datepicker('getDate');
            var dateAsObject = $(this).datepicker('getDate');
        }

     String selectedDate"";
    selectedDate=theDate.toString();


         });

所以在提出建议之后我一直试图这样做:

    <script type="text/javascript">
        $(function () {      
                $(".datepicker").datepicker({dateFormat: 'yy.mm.dd'})
        });  
        </script>

@using (Html.BeginForm("Action", "Controller",  new { @id = "formName", @Name = "formName" }))
{
 Date: <input type="text" class="datepicker" onchange="$('#formName').submit();"
 }

然后在控制器中:

public ActionResult myMethod(DateTime?  date=null)
{
if if (date != null)
            { 
            //do 
            }
}

在控制器中,日期始终为空。我是否将我的GeginForm命名为错误?

2 个答案:

答案 0 :(得分:0)

只要使用altFieldaltFormat选项选择日期,您就可以使用自己的日期格式填充备用字段。此功能可用于显示用户选择的人性化日期,同时通过更加计算机友好的日期进行进一步处理。

代码:

<!doctype html>

<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>jQuery UI Datepicker - Populate alternate field</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.1/themes/base/jquery-ui.css" />
    <script src="http://code.jquery.com/jquery-1.8.2.js"></script>
    <script src="http://code.jquery.com/ui/1.9.1/jquery-ui.js"></script>
    <link rel="stylesheet" href="/resources/demos/style.css" />
    <script>
    $(function() {
        $( "#datepicker" ).datepicker({
            altField: "#alternate",
            altFormat: "DD, d MM, yy"
        });
    });
    </script>
</head>
<body>

<p>Date: <input type="text" id="datepicker" />&nbsp;<input type="text" id="alternate" size="30" /></p>


</body>
</html>

希望这有帮助!

答案 1 :(得分:0)

你有复杂的事情。只需将onchange事件用于输入,当datepicker进行更改时,它将触发操作。

控制器:

          // You can use "String?" type here
public ActionResult Index(DateTime? date = null)
{
    if (date != null)
    {
        // Your Logic Here!
    }
}

查看:

<script type="text/javascript">
    $(function() {
        $( ".datepicker" ).datepicker({ dateFormat: 'yy.mm.dd' });
    });
</script>
<input type="text" class="datepicker" onchange="$('#YourForm').submit();" />

每当用户选择日期时,我也会使用它来显示该日期的数据。 简单快捷..