ajax呼び出しからActionView
コントローラーのメソッドにデータを渡すことによって生成されるコードがあります。そのデータにアクセスできるのは、ajax呼び出しが戻ったときだけです。データを表示しようとしている領域が更新されていないため、データを追加しましたPartialView
作成したページdivに戻ります。私の問題は、ユーザーがajaxリクエストを呼び出すために必要なものを送信する前にページが間抜けに見えないように、まったく同じ小さなテーブルのプレースホルダーを持っていることです。私の問題は、プレースホルダー領域と表示している領域にあるボタンが正しく機能していないことです。何が起こっているのかというと、javascriptは、同じ情報を持つ2つの領域によって混乱していると思いますが、名前/IDを変更しても修正されていないようです。これが私のコードです。(プレースホルダーテーブルが非表示になる前に機能する必要もあります)
これはメインページにあります:
<tr>
<td>Comments: @Html.TextBox("comments2", comment)</td>
<td></td>
</tr>
<tr>
<td style="vertical-align: middle;">Booking#:@Html.TextBox("bookNum2", bookNum)</td>
<td><input id="saveOrder2" type="button" value="Save Order2" onclick="saveOrder2(true)" /></td>
</tr>
<tr>
<td style="vertical-align: middle;">Ship Date:@Html.TextBox("shipDate2", shipDate)</td>
<td>
<input id="Build" type="button" value="Build Load" /> </td>
</tr>
</table>
PartialViewページにこれがあります:
<tr>
<td>Comments: @Html.TextBox("comments", comment)</td>
<td></td>
</tr>
<tr>
<td style="vertical-align: middle;">Booking#:@Html.TextBox("bookNum", bookNum)</td>
<td><input id="saveOrder" type="button" value="Save Order" onclick="saveOrder(true)" /></td>
</tr>
<tr>
<td style="vertical-align: middle;">Ship Date:@Html.TextBox("shipDate", shipDate)</td>
<td>
<input id="Build" type="button" value="Build Load" /></td>
</tr>
</table>
次に、私が使用しているjavascript関数:
function saveOrder(isSave)
{
var comments = document.getElementById("comments2").value;
var bookNum = document.getElementById("bookNum2").value;
var shipDate = document.getElementById("shipDate2").value;
var itemList = grabSaveItems();
//alert(itemList.toString());
var request = $.ajax(
{
type: "POST",
url: "/Home/saveOrder",
data: "itemList=" + itemList+"&isSave="+isSave+"&comments="+comments+"&bookNum="+bookNum+"&shipDate="+shipDate,
success: function (itemList) {
}
});
request.done(function () {
if (isSave == true)
{
alert("The Order Was Saved");
}
});
request.fail(function (Check, textStatus) { alert("Request failed: " + textStatus); });
}
したがって、注文番号に基づいて、必要な情報をモデルに追加し、PartialViewを返して必要な情報を表示します。このajax呼び出しが行われた後に[注文を保存]をクリックすると、次のランタイムエラーが発生します。MicrosoftJScriptランタイムエラー:メンバーが見つかりません。これは、Orderを保存するための呼び出しの直後に発生しますが、デバッガーはこの関数の直後の行を指しますが、それが何を意味するのかわかりません。どんな助けでもいただければ幸いです。