如何使用jquery datetimepicker将选定日期发送到mvc4中的控制器?

时间:2014-06-01 22:54:46

标签: jquery asp.net-mvc asp.net-mvc-4

我有一个Jquery日期选择器,日期是从DatePicker中选择的,但我不知道如何使用我的模型发送或附加该日期,以便它可以传输到控制器。如

<div class="editor-label">
    <%: Html.LabelFor(Function(model) model.UserName) %>
</div>
 <div class="editor-field">
    <%: Html.EditorFor(Function(model) model.UserName) %>
    <%: Html.ValidationMessageFor(Function(model) model.UserName) %>
</div>

<div class="editor-label">
    <%: Html.LabelFor(Function(model) model.SecretVoucherId) %>
</div>
 <div class="editor-field">
    <%: Html.EditorFor(Function(model) model.SecretVoucherId) %>
    <%: Html.ValidationMessageFor(Function(model) model.SecretVoucherId) %>
</div>

<div class="editor-label">
    <%: Html.LabelFor(Function(model) model.VoucherDate) %>
</div>

  <%-- here i have Jquery Date Picker, How to send this Selected date to Controller with model --%>
    <p>Date: <input type="text" id="datepicker" ></p>

<p>
    <input type="submit" value="Save Voucher" />
    </p>

2 个答案:

答案 0 :(得分:0)

如果您使用<%: Html.EditorFor(Model.VoucherDate) %>正确设置模型并使用首都Function(model)作为@model,您仍然可以使用M(无需Model部分)而不是model

然后,在您的javascript调用中使用名称$("#VoucherDate")而不是$("#datapicker")

但我可能会使用一个类而不是id,因此您可以在同一页面轻松拥有多个日期选择器,而无需重写javascript。

改为使用:

@Html.TextBox("VoucherDate", Model.VoucherDate, new { @class = "datapicker" })

并在您的javascript通话中将#更改为.,以便$("#datapicker")$(".datapicker")


作为备注:您需要在HTML中使用name属性才能作为属性(模型或简单属性)传递给控制器​​。

作为一个例子:

这永远不会将datepicker传递给控制器​​:

 <input type="text" id="datepicker" />

这将:

<input type="text" id="datepicker" name="datepicker" >

想象控制器是:

public ActionResult MyAction(DateTime datepicker) { ... }

答案 1 :(得分:0)

我得到了这个,我必须将datepicker绑定到类而不是id,以便它可以重用为:

 <script>
     $(function () {
         $(".datepicker").datepicker();
     });

 <%: Html.TextBox("VoucherDate", Model.VoucherDate, New With {Key .class = "datepicker"})%>
相关问题