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 回答