我使用ASP.NET MVC构建了我的项目,并且我还使用实体框架来构建一些自动CRUD页面。有两个表如下,问题是我想在下拉列表更改时调用我的控制器中的方法。
在"创建" Tick的页面客户列表在下拉列表中加载,但我需要将所选客户的密钥传递给我的控制器中的一个方法。使用javascript方法回答了与此主题相关的其他问题,但这些问题仅限于手动创建的下拉列表列表,而不是从数据库创建的,或者它从一个数据库本身加载,而不是通过外键从另一个表加载。 这是代码 我的观点:
<select class="form-control" ng-model="selectedList">
<option disabled selected value
ng-show="downloadedLists.length == 0">n/a</option>
<option ng-repeat="item in downloadedLists" value="{{$index}}">{{$index}}</option>
</select>
我在控制器中的方法:
@model Myproject.Models.Ticket
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Create</title>
</head>
<body>
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Ticket</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
...
<div class="form-group">
@Html.LabelFor(model => model.CustomerId, "CustomerId", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("CustomerId", null, htmlAttributes: new { @class = "form-control",
// I'm trying to call my method here
@onchange = @TicketsController.GetDiscount(CustomerId)
})
// I'd like to show the return value of the method in a label
...
@Html.ValidationMessageFor(model => model.CustomerId, "", new { @class = "text-danger" })
</div>
</div>
}
</body>
</html>
想象一下,如果第一个客户的主键是10并且选择了第一个客户,我需要将10号传递给我的控制器并获得该方法的结果并将结果显示在一个标签中。