0

ここで試みているのは、部分ビューの JQuery ダイアログにデータを含む JQuery テンプレートをロードすることです。私は MVC 3、JQuery、および JSON にまったく慣れていないので、これが正しいかどうかはよくわかりません。

次のような部分ビューへの単純な呼び出しがある Index.cshtml があります。

<div id="userList">
@Html.Partial("UserList", new Mvc3Application.Models.User{ Name = "ABC"})
</div>

UserList.cshtml

@model Mvc3Application.Models.User

@{
ViewBag.Title = "UserList";
}

<div id="edit-popup">
<input type="button" onclick="Call();" id="bnt" /> 
</div>

<script id="edit-template" type="text/x-jquery-tmpl">

<input id="edit-id" type="hidden" value="@Model.Id" />
<label>Name</label><input id="edit-name" type="text" value="@Model.Name" />

</script>

<script type="text/javascript">
 function Call() {

var data = {};
data.Id = "1";
data.Name = "XXX";

alert(data.Name);

$("#edit-popup").html($("#edit-template").render(data));

$("#edit-popup").dialog({
modal: true,
autoOpen: true
});
}
</script>

ユーザー モデルは、これらのプロパティを持つ非常に単純なものです。

    public string Id { get; set; }
    public string Name { get; set; }

ここで間違っている場所を教えてもらえますか。データとともにテンプレートを表示するには、JQuery ダイアログが必要です。

ありがとう。

4

1 に答える 1

0

呼び出しボタンをクリックしている間に jQuery UI ダイアログを定義しているため、コードは機能しません。それは明らかに間違っています。理想的にはこれを行う必要があります。

いくつかのイベントでダイアログを定義しonDOMReady、ボタンをクリックしてダイアログを開きます。

$(document).ready(function() {
    //render the dialog
    $("#edit-popup").dialog({
        modal: true,
        autoOpen: false
    });
});

function Call() {

    var data = {};
    data.Id = "1";
    data.Name = "XXX";

    alert(data.Name);

    $("#edit-popup").html($("#edit-template").render(data));
    //now open the dialog
    $("#edit-popup").dialog("open");
}​

注意: 関数名を からCall()より良いものに変更してください。

于 2012-04-29T09:46:20.343 に答える