Я использую Asp.net MVC3 с JQuery виджет DatePicker. Я хочу, чтобы пользователь щелкнул по дате и перешел на URL этой даты. например. http://mysite.com/home/index/20111231
Я нашел похожий пост, но это не относительный URL. jQuery UI Datepicker перейти к дате URL
мой код работает для первого клика, но при втором клике URL удвоился и выдал ошибку 404.
1-й клик: http://mysite.com/home/index/20111231
2-й клик: http://mysite.com/home/index/home/index/20111231
код в поле зрения:
<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>
код в контроллере:
public class HomeController : Controller
{
public ActionResult About()
{
return View();
}
public ActionResult Index(string id)
{
ViewBag.Message = "Welcome " + id;
return View();
}
}
ОБНОВЛЕНО :
мое решение состоит в том, чтобы создать виртуальный путь на сервере и прикрепить его к клиенту HTML.
document.location.href = '@Request.Url.GetLeftPart(UriPartial.Authority)@HttpRuntime.AppDomainAppVirtualPath' + "/Home/Index/" + dateText;