jquery日期选择器转到相对日期url
我正在使用asp.NETMVC3和jquery日期选择器小部件。我希望用户点击一个日期并转到该日期的url。例如 我发现了一个类似的帖子,但它不是一个相对的url 我的代码在第一次点击时有效,但在第二次点击时,url出现了双重错误,给了我404错误。 第一次点击: 第二次点击: 视图中的代码: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
<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 })