4

Ajax.beginformasp.net mvcビュー内に 次のように表示されます。ここで、ajax呼び出しの結果が次のように置き換え<div id= "searcharea">られます。-

@using (Ajax.BeginForm("Search", "Patient",
    new AjaxOptions
{
    HttpMethod = "GET",
    InsertionMode = InsertionMode.Replace,
    UpdateTargetId = "searcharea",
    LoadingElementId = "progress2"
}))
{
   <table >

 <tr>

        <th>
         Searching By First Name (English) :-
        </th>
        <th>
          <input type="text" name="firstname"  />
        </th></tr>
      <tr>

        <th>
         Searching By Family Name (English) :-
        </th>
        <th>
          <input type="text" name="familyname"  />
        </th></tr>

      <input type="submit" value="Search      " /></th><th></th></tr>
  </table>

}

<div id = "progress2">
<img src= "@Url.Content("~/Content/images/Ajax-loader-bar.gif") ">
</div>
<p>
<div id= "searcharea">
</div>

<div id= "searcharea">したがって、最初はajax呼び出しの結果に置き換えられ、その後はavilalbeにならないため、1回の検索しか実行できません。また、anther ajax呼び出しを実行しようとすると、検索は実行されません。<div id= "searcharea">結果を置き換えるためにもっと。

しかし、実際に起こったことは、問題なく複数の検索を実行できたということです。つまり、これはInsertionMode.ReplaceDOM要素を置き換えず、このDOM内にajax呼び出しの結果のみを挿入することを意味します。最初のajax呼び出しに置き換えられたとしても、DOM要素を複数回参照する方法がわかりません??? !! 誰かがこれがどのように起こるかを説明できますか?BR

4

1 に答える 1

13

あなたは誤解していますInsertionMode.Replace。要素自体ではなく、指定したHTML要素のすべてを置き換えます。UpdateTargetId

と同じです

$("#searcharea").html(newHTMLcontent);

動作する要素を破壊する挿入モードは、あなたが言及した理由のためにあまり役に立ちません:あなたはそれを一度しか使用できないでしょう。

于 2012-05-01T03:12:56.143 に答える