【问题标题】:Embedding form values in an ASP.Net MVC JavaScript URL.Action Call在 ASP.Net MVC JavaScript URL.Action 调用中嵌入表单值
【发布时间】:2022-01-19 21:03:24
【问题描述】:

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

我在模态窗体上有一个按钮,我想在单击它并关闭模态窗体时调用控制器中的方法。

这是按钮的 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")';

});

这是控制器中的接收方法:

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

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

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

【问题讨论】:

    标签: javascript asp.net-mvc


    【解决方案1】:

    如果你喜欢经典的 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;
    

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

    【讨论】:

    • 谢谢!为了其他尝试此操作的人,解决方案#2(这是我使用的那个)中存在语法错误(最后一个参数中缺少+)一旦我修复它,它就像一个魅力!
    • @gfi-ed 欢迎您。请不要忘记接受答案。其他用户应该知道它很有用。您可以通过单击答案旁边的复选标记来接受答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    • 2011-09-18
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多