0

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を保存するための呼び出しの直後に発生しますが、デバッガーはこの関数の直後の行を指しますが、それが何を意味するのかわかりません。どんな助けでもいただければ幸いです。

4

1 に答える 1

0

わかりました、私はそれがばかげていることを知っていました。入力のIDに関数と同じ名前を割り当てると、Javascriptがおかしくなるように見えるので、何をすべきか/呼び出すべきかわかりません。

<td><input id="**saveOrder"** type="button" value="Save Order" onclick="**saveOrder**(true)"/></td>
于 2013-02-01T16:42:32.273 に答える