带有url参数的MVC4 URL操作

时间:2014-03-31 14:16:21

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

所以我在jquery完整日历上打印此视图按钮,该按钮采用当前视图中的日期范围并生成更适合打印机的日历版本。这是控制器的开始。

        public ActionResult PrintableCalendar(string start, string end)
    {
        DateTime StartTime = Convert.ToDateTime(start);
        DateTime EndTime = Convert.ToDateTime(end);
        EndTime = EndTime.AddDays(-1);


        ClientContext clientContext = new ClientContext(WebConfigurationManager.AppSettings["SPSite"]);
        Web site = clientContext.Web;

这是初始日历上的按钮

<input type="button" id="PrintView" name="PrintView" value="Print This View" />

这是按钮的点击功能。                  $(&#39; #PrintView&#39;)。click(function(){             var currentCalendarView = $(&#39;#calendar&#39;)。fullCalendar(&#34; getView&#34;);             var startDate = currentCalendarView.visStart;             var endDate = currentCalendarView.visEnd;             window.open(@ Url.Action(&#34; PrintableCalendar&#34;,&#34; OnCall&#34;,new {start = startDate.toString(),end = endDate.toString()}));         });     

UPDATE ...最初在同一视图中调用此方法来生成日历

 <script type='text/javascript'>

    $(document).ready(function() {

        $('#calendar').fullCalendar({
            editable: true,
            data: JSON.stringify(),
            eventRender: function(event, element) {
                element.find('span.fc-event-title').html(element.find('span.fc-event-title').text());
            },
            events: "@(Url.Action("GetEvents", "OnCall"))",
            header: {
                left: 'prev,next today',
                center: 'title',
                right: 'month,agendaWeek,agendaDay'
            },


            loading: function(bool) {
                if (bool) $('#loading').show();
                else $('#loading').hide();
            }

        });

    });

</script>

2 个答案:

答案 0 :(得分:1)

您正在将JS与.Net参数混合 尝试用

替换最后一行
window.open('@Url.Action("PrintableCalendar", "OnCall", null)?start=startDate&end=endDate');

[在你纠正我之后编辑](在电话中忘了一些引号和toDateString)

window.open('@Url.Action("PrintableCalendar", "OnCall", null)?start=' + startDate.toDateString() + '&end=' + endDate.toDateString());

答案 1 :(得分:0)

你试试这个,它可以帮助你用动作和参数调用特定的控制器。

window.location.href =&#34; @ Url.Action(&#34; Action&#34;,&#34; Controller&#34;)&#34; +&#34; /&#34; +参数;