JQueryUI の datepicker を使用するように構成された Html.TextBox を含む ASP.NET MVC 部分ビューがあります。これは、スタイルが .datepicker に設定されていることを確認することによって行われます。これはすべてうまくいきました。ただし、フォームを Ajax.BeginForm に変更し、リンクをクリックした後に表示される Ajax.ActionLink を含めました。これを追加して以来、日付ピッカーは表示されません。実際、以前は機能していた JavaScript は、コントローラーから部分ビューが返された後に呼び出されることさえありません。JavaScript/JQuery を部分ビュー自体に配置しても、まだ使用されません。私は本当に混乱しています、誰か助けてもらえますか?
以下に示す例
<div id="claims">
<div id="divViewClaims">
<% Html.RenderPartial("ViewClaim", Model.Claims ?? null); %>
</div>
<br /><br />
<div id="claim">
<% Html.RenderPartial("AddEditClaim", new Claim()); %>
</div>
</div>
アクション リンク、clickon が Controller Action を呼び出して PartialView を返すと、OnSuccess で呼び出された JavaScript が起動しますが、以前は document.read 関数によってフックされていたものは何も起動しません。すべてのスクリプトは別のファイルにあり、マスター ページで参照されます。
<%= Ajax.ActionLink(string.Format("Add A{0} Claim", Model.Count > 0 ? "nother" : string.Empty), "AddClaim", "Driver", new AjaxOptions { HttpMethod = "GET", UpdateTargetId = "claim", OnSuccess="showAddClaim" }, new { @class = "ControlLink" })%>
コントローラ アクション
public ActionResult AddClaim()
{
return PartialView("AddEditClaim", new Claim());
}
スタイルがdatepickerに設定されたテキストボックスを示す部分ビュー
<% var ajaxOptions = new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "divViewClaims", InsertionMode = InsertionMode.Replace, OnSuccess="hideAddClaim" }; %>
<% using (Ajax.BeginForm("AddEditClaim", "Claim", ajaxOptions, new { @name = "ClaimControl", @id = "ClaimControl" }))
{ %>
<fieldset>
<legend><%= Model.Id==0?"Add":"Edit" %> Claim</legend>
<p>
<label for="Title">Claim Date</label>
<%= Html.TextBox("Date", Model.Date.ToString().TrimEnd('0', ':', ' ') ?? "", new { @class = "datepicker" })%>
</p>
これについて何か助けていただければ幸いです。