0

かみそりのページに「btnGetAddress」ボタンがあります。このボタンをクリックすると、Jqueryを呼び出して、addressItmesオブジェクトを表示ページに表示します。

「btnGetAddress」をクリックする"JsonResult GetAddresses()"と、Jquery内のレコードをヒットして取得でき(success: function (data))ます。このデータには、複数のアドレスレコードがあります。しかし、このデータをビューに表示する方法がわかりません。データをビューに表示するのを手伝ってください。

ページが読み込まれると、ユーザーには「btnGetAddress」ボタンのみが表示されます。ユーザーがbtnGetAddressをクリックすると、Jquery Click関数が呼び出され、データベースからすべてのアドレスレコードが取得され、ページにレコードの各セットが表示されます。

$("#btnGetAddress").click(function () { 

                debugger;
                var selected = $("#ddlType").val();
                if (selected == "")
                { selected = 0; }
                var dataToSend = {
                    SelectedTypeId: selected
                };
                $.ajax({
                    type: "GET",
                    url: '@Url.Action("GetAddresses", "Content")',
                    data: { SelectedTypeId: selected },
                    success: function (data) {
                        debugger;

                    },

                    error: function (error) {
                        var verr = error;
                        alert(verr);
                    }

                });

以下に貼り付けたのは、addressItemsを取得するために呼び出されるJsonResult GetAddresses()です。

public JsonResult GetAddresses()
        {
   model.AddressItems = AddressService.RetrieveAllAddress(); 
 // My AddressItems is of type IEnumerable<AddressItems>   


 return Json(model.AddressItems, JsonRequestBehavior.AllowGet);
}

これが私のかみそりのビューページで、アドレスレコードが表示されます。

 ........................

  <input type="submit" id="btnGetAddress" name="btnSubmit" value="Show Addresses" />

  if (!UtilityHelper.IsNullOrEmpty(Model.AddressItems))
    {

        foreach (var AddressRecord in Model.AddressItems)
        {
    <fieldset >
        <legend style="padding-top: 10px; font-size: small;">Address Queue(@Model.NumRecords)
        </legend>
        <table>
            <tr>
                <td>
                    <span>Index</span>

                </td>
                <td>
                </td>
                <td>
                    <input type="submit" id="btnDelete" name="btnSubmit" value="X" />
                    <br />
                </td>
            </tr>
            <tr>
                <td>
                    <span>Address1</span>
                    <br />
                </td>
                <td>
                    @Html.EditorFor(model => AddressRecord.Address )
                    @Html.ValidationMessageFor(model => AddressRecord.Address)
                </td>
            </tr>
            <tr>
                <td>
                    <span>Description</span>
                    <br />
                </td>
                <td>
                    @Html.EditorFor(model => AddressRecord.Description)
                    @Html.ValidationMessageFor(model => AddressRecord.Description)
                </td>
            </tr>
           <tr>
                <td>
                    <input type="submit" id="btnSave" name="btnSubmit" value="Save" />
                </td>
                <td>
                    <input type="submit" id="btnDelete" name="btnSubmit" value="Delete" />
                </td>
            </tr>
        </table>
    </fieldset>
        }
        }

    <fieldset>

または、私の目的を達成するためのより良い方法はありますか?

4

2 に答える 2

1

ajaxを介してデータを取得しているため、jqueryテンプレートエンジンを使用する必要があります。基本的に、現在の方法でデータを取得し、成功すると次のようなことを行います

<script language="javascript" type="text/javascript">
    $(function () {
        $.getJSON("/getprojects", "", function (data) {
            $("#projectsTemplate").tmpl(data).appendTo("#projectsList");
        });
    });
</script>

<script id="projectsTemplate" type="text/html">
    <section>
        <header><h2>Projects</h2></header>
        <table id="projects">
            <th>Name</th>
            {{tmpl(items) "#projectRowTemplate"}}
        </table>
    </section>
</script>

<script id="projectRowTemplate" type="x-jquery-tmpl">
  <tr>
    <td><a href="/show/${id}">${name}</a></td>
  </tr>
</script>

<div id="projectsList"></div>

今では各テンプレートエンジンは異なりますが、上記はあなたが何ができるかについての考えをあなたに与えます

于 2012-04-26T19:34:37.787 に答える
0

コントローラでJSONオブジェクトを返したい場合は、ビューを文字列に変換して、メッセージの一部として返す必要があります。あなたがグーグルするならば、これをすることができるそこにいくつかの方法があります。

ただし、それは本当に難しい方法だと思います。JSONから取得したデータをコントローラーに取り、それをMODELに入れて、渡されたモデルデータを使用してVIEWを返すのは簡単な方法だと思います。

于 2012-04-26T19:53:36.237 に答える