2

asp.net mvc 3 を使用して Web アプリケーションを作成しています。

次の形式があります。

@using (Html.BeginForm())
{
<div>
    <fieldset>
        <legend>Approvals</legend>
        <div>
            @Html.Label("Ticket ID")
            @Html.DropDownList("TicketID")
        </div>
        <div>
            @Html.Label("Distributor ID")
            @Html.TextBox("DistributorID", null, new { @readonly = "readonly" })
        </div>
        <div>
            @Html.Label("Description")
            @Html.TextArea("Description", new { @readonly = "readonly" })
        </div>
        <div>
            @Html.Label("Resolved")
            @Html.DropDownList("Resolved")
        </div>
        <div>
            @Html.Label("Date (yyyy/mm/dd)")
            @Html.TextBox("Date")
        </div>
        <div>
            @Html.Label("Time (HH:mm:ss)")
            @Html.TextBox("Time")
        </div>
    </fieldset>
    <input type="submit" value="Approve / Disapprove" />
</div>
}

TicketID ドロップダウンリストからチケット ID が選択されるたびに、データベースから値を読み取った後、他のフィールドのデータを更新するにはどうすればよいですか。つまり、チケットIDが変更されるたびに、特定のチケットIDのデータベースからデータを読み取った後、フォームを送信せずに他のフィールドのデータが変更される必要があります。

4

2 に答える 2

1

ajax を使用してこれを行うことができます。

$('select[name=TicketID]').change(function(){
    var selectedValue = $(this).find('option:selected').val();
    $.getJSON('/mycontroller/MyAction', selectedValue,
    function(result){
        $('input[name=DistributorID]').val(result.DistributorID);
        $('input[name=Description]').val(result.Description);
        $('input[name=Resolved]').val(result.Resolved);
        $('input[name=Date]').val(result.Date);
        $('input[name=Time]').val(result.Time);
    });
});

コントローラーで:

public JsonResult MyAction(int selectedValue)
{
    var result = new
    {
        DistributorID = 1,
        Description = 1,
        Resolved= 1,
        Date= 1,
        Time= 1
    };
    return Json(result, JsonRequestBehavour.AllowGet);
}

構文エラーで申し訳ありませんが、ここにコードを直接書きました

于 2012-08-29T19:27:38.437 に答える
0

jquery ajax post によって json の結果を返すアクションを呼び出すことができます。

アクションはあなたが望むものを返します。

$('#TicketID').change(function(){
   $.ajax({
     url: '/ActionThatReturnsJsonResult',
     cache: false,
     type: 'post'
     success: function (data) {
         $('#DistributorID').val(data.DistributorIDFromDataBase);
     },
     error: function (e) {
         alert(e.responseText);                            
     }
   });
});
于 2012-08-29T19:24:47.477 に答える