繁体   English   中英

在 ASP.Net MVC JavaScript URL.Action 调用中嵌入表单值

[英]Embedding form values in an ASP.Net MVC JavaScript URL.Action Call

我正在尝试将参数从 JavaScript 中的 URL.Action 调用传递给 ASP.Net MVC controller。 我看到其他人发布了与此类似的内容,但不是我所拥有的确切情况,尽管我尝试实施这些解决方案,但它们没有翻译。

我在模态表单上有一个按钮,当单击它并关闭模态表单时,我想调用 controller 中的方法。

这是按钮的 HTML:

    <div class="modal-footer">
        <button type="button" class="btn btn-default closing-modal" data-dismiss="modal">Done</button>
    </div>

这是 javaScript

$(document).on('click', '.closing-modal', function () {
    var datePickers = document.getElementsByClassName("datepicker");
    var times = document.getElementsByClassName("timeField");
    var myStartDate = datePickers[0].value; 
    var myEndDate = datePickers[1].value;
    var myStartTime = times[0].value;
    var myEndTime = times[1].value;

    window.location.href = '@Url.Action("ContractSelectedIndex", "ReviewTicket")';

});

这是controller中的接收方法:

    public ActionResult ContractSelectedIndex(string startDate, string startTime, string endDate, string endTime)

我尝试了各种方法来添加新的 {},但由于 @ 我找不到正确的语法。 这是我尝试过的对我来说最有意义的方法(为了示例,只有第一个参数),但它不喜欢它。

    window.location.href = '@Url.Action("ContractSelectedIndex", "ReviewTicket", new { startDate: ' + myStartDate + ')' ;

如果你喜欢经典的 mvc 风格,你可以使用它

var url='@Url.Action("ContractSelectedIndex", "ReviewTicket")'
+ '/' + startDate + '/' + startTime + '/' + endDate + '/' +endTime;

window.location.href = url;

在这种情况下,您的操作应该是

[Route("~/ReviewTicket/ContractSelectedIndex/{startDate}/{startTime}/{endDate}/{endTime}")]
public ActionResult ContractSelectedIndex(string startDate, string startTime, string endDate, string endTime)

或这个

var url='@Url.Action("ContractSelectedIndex", "ReviewTicket")'
+ '?startDate=' + startDate + '&startTime=' + startTime + '&endDate=' + endDate + '&endTime=' + endTime;

window.location.href = url;

在这种情况下,您可以使用您现在拥有的操作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM