jquery datepickerウィジェットでasp.net mvc3を使用しています。私は、ユーザーが日付をクリックし、その日付のURLに移動したい。例えば。 http://mysite.com/home/index/20111231jquery datepicker goto相対日付のURL
私は類似した投稿を見つけましたが、それは相対URLには向いていません。 jQuery UI Datepicker go to date URL
私のコードは最初のクリックでは動作しますが、2回目のクリックでURLが2倍になり、404エラーが発生しました。 第一クリック:http://mysite.com/home/index/20111231 第二クリック:ビューで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();
}
}
UPDATED: 私のソリューションは、仮想パスを上生成することですサーバーとそれをクライアントhtmlに貼り付けます。
document.location.href = '@Request.Url.GetLeftPart(UriPartial.Authority)@HttpRuntime.AppDomainAppVirtualPath' + "/Home/Index/" + dateText;
先頭に「/」を追加しようとしましたが、仮想ディレクトリ名もハードコードする必要があります。それは良い解決策ではありません。しかし、あなたは私がサーバー上の仮想ディレクトリを取得し、それをクライアントhtmlに貼り付けることができたことを思い出しました。解決方法の更新を参照してください。 –