Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery日期选择器转到相对日期url_Jquery_Asp.net Mvc 3_Datepicker_Relative Path - Fatal编程技术网

jquery日期选择器转到相对日期url

jquery日期选择器转到相对日期url,jquery,asp.net-mvc-3,datepicker,relative-path,Jquery,Asp.net Mvc 3,Datepicker,Relative Path,我正在使用asp.NETMVC3和jquery日期选择器小部件。我希望用户点击一个日期并转到该日期的url。例如 我发现了一个类似的帖子,但它不是一个相对的url 我的代码在第一次点击时有效,但在第二次点击时,url出现了双重错误,给了我404错误。 第一次点击: 第二次点击: 视图中的代码: <script type="text/javascript"> $(document).ready(function () { $("#datepicker").dat

我正在使用asp.NETMVC3和jquery日期选择器小部件。我希望用户点击一个日期并转到该日期的url。例如

我发现了一个类似的帖子,但它不是一个相对的url

我的代码在第一次点击时有效,但在第二次点击时,url出现了双重错误,给了我404错误。 第一次点击: 第二次点击:

视图中的代码:

<script type="text/javascript">
    $(document).ready(function () {
        $("#datepicker").datepicker({
            beforeShowDay: function (date) {
                return [true, "active"];
            },
            onSelect: function (dateText, inst) {
                document.location.href = "Home/Index/" + dateText;
            },
            onChangeMonthYear: function(year, month, inst)
            {
            },
            dateFormat: "yymd",
            showOtherMonths: true,
            selectOtherMonths: true,
            changeMonth: true
        });
    });
</script>
<h2>@ViewBag.Message</h2>
<div id="datepicker">
</div>
已更新: 我的解决方案是在服务器上生成虚拟路径,并将其粘贴到客户端html

document.location.href = '@Request.Url.GetLeftPart(UriPartial.Authority)@HttpRuntime.AppDomainAppVirtualPath' + "/Home/Index/" + dateText;

您需要在路径的开头添加一个
/


document.location.href=“/home/Index/”+日期文本

我建议使用URL帮助器来构建URL。这样,在您更改路线等后,它仍然有效

@Url.Action("Index", "Home", new { id = dateText })

我尝试在开头添加“/”,但我还需要硬编码虚拟目录名。这不是一个好的解决方案。但是您提醒我,我可以在服务器上获取虚拟目录,并将其粘贴到客户端html上。请参阅更新的解决方案。它几乎可以工作,但dateText是javascript,而不是c代码。所以我得到了编译错误。啊,我可以强制Url助手创建路由Url,然后用javascript解析它。var url='@url.Action(“Index”,“Home”,new{id=0})”;url=url.substr(0,url.length-1)+dateText;document.location.href=url;你说得对——如果它是使用JavaScript构建的,那就更棘手了。我认为解析方法是一个足够的解决方法。
@Url.Action("Index", "Home", new { id = dateText })