0

ユーザーがクライアント ID を入力すると、自動的に更新したいインデックス ビューがあります。私は似たようなものを手に入れました(ラベルだけを更新しているだけです)-しかし、これは機能しません。

何が起こるかというと、パーシャルは (UpdateTargetID の代わりではなく) 単独でレンダリングされるだけです。したがって、データは新しいページにレンダリングされます。これが私のコードです:

コントローラ:

public ActionResult ClientList(string queryText)
    {
        var clients = CR.GetClientLike(queryText);
        return PartialView("ClientIndex", clients);
    }

部分図:

<table>
<thead>
    <tr>
        <td>Client ID</td>
        <td>Phone1</td>
        <td>Phone2</td>
        <td>Phone3</td>
        <td>Phone4</td>
    </tr>
</thead>
<tbody>
    <% if (Model != null)
       {
           foreach (Client c in Model)
           { %>
        <tr>
            <td><%= Html.Encode(c.ClientID)%></td>
            <td><%= Html.Encode(c.WorkPhone)%></td>
            <td><%= Html.Encode(c.WorkPhone1)%></td>
            <td><%= Html.Encode(c.WorkPhone2)%></td>
            <td><%= Html.Encode(c.WorkPhone3)%></td>

        </tr>
    <% }
       } %>
</tbody>

メイン ビュー:

めちゃくちゃなコードを挿入するので、これをコピーして貼り付けるだけです:

$(function() { $("#queryText").keyup(function() { $('#sForm').submit(); }); });

  <div id="status" class="status" name="status">
    <%--<% Html.RenderPartial("ClientIndex", ViewData["clients"]); %> Should this be here???? --%>

  </div>
4

2 に答える 2

1

私も同じ問題を抱えていました。

私の部分的な見方では、私はこれを持っていました

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>

でもこうあるべきだった

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IQueryable<Client>>" %>

ajax 呼び出しが機能しているかどうかをテストする簡単な方法は、ActionResult の代わりに文字列を返すことです

public string ClientList(string queryText)<
{
    return("ok, the ajax call must have worked because I see this string.");
}
于 2010-04-02T17:08:14.700 に答える
0

ページに常にフォームを投稿するのではなく、舞台裏で jQuery.get 呼び出しを行って、提供されたテキストの検索結果を取得してみませんか。これはより高速でクリーンになると思います。私があなただと思うようにフォームを送信すると(あなたのコードを読んだことから判断して)、ページが本質的に更新されます(divに書き直されません)。

$('#sForm').submit()
于 2009-07-03T01:07:54.183 に答える