我想基于JVC,剃刀视图和控制器,基于MVC中的下拉选择,从名为Supplier的模型中自动填充文本框,该模型具有SupplierID和Company_Registration_Number作为变量。我已经设法通过级联下拉列表来完成此操作,但是我无法填充@ Html.EditorFor。
我的控制器:
public JsonResult GetCompanyRegistrationNumberId(int id)
{
var suppliers = db.Suppliers.Where(p => p.SupplierID == id).ToList();
var result = (from r in suppliers
select new
{
id = r.SupplierID,
name = r.Company_Registration_Number
}).ToList();
return Json(result, JsonRequestBehavior.AllowGet);
}
我的JQuery:
$(function () {
if ($("#SupplierID").val() == '0') {
var productDefaultValue = "<option value='0'>--Select a category first--</option>";
$("#Company_Registration_Number").html(productDefaultValue).show();
}
$("#SupplierID").change(function () {
var selectedItemValue = $(this).val();
alert("cert");
var ddlProducts = $("#Company_Registration_Number");
$.ajax({
cache: false,
type: "GET",
url: '@Url.Action("GetCompanyRegistrationNumberId", "Order")',
data: { "id": selectedItemValue },
success: function (data) {
ddlProducts.html('');
$.each(data, function (id, option) {
ddlProducts.append($('<option></option>').val(option.id).html(option.name));
});
},
error: function (xhr, ajaxOptions, thrownError) {
alert('Found error to load product!!.');
}
});
});
});
我的剃刀视图:
<div class="form-group">
@Html.LabelFor(model => model.Company_Registration_Number, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Company_Registration_Number, new { @id = "Company_Registration_Number" })
@Html.ValidationMessageFor(model => model.Company_Registration_Number, "", new { @class = "text-danger" })
</div>
</div>
谢谢。