У меня есть представление с выпадающим списком, который создается оператором linq при заполнении представления.
<div class="form-group">
@Html.LabelFor(m => m.OrderID, "Order ID")
<div>
@Html.DropDownListFor(m => m.OrderID, Model.Orders, "Select Order ID",
new { @id = "orderDropdown" })
</div>
</div>
У меня есть 2 других поля в представлении, которые необходимо обновить данными, полученными из базы данных.
<div class="form-group">
@Html.Label("Final Weight")
<div id="finalWeight">
@Html.DisplayFor(m => m.FinalWeight)
</div>
</div>
<div class="form-group">
@Html.Label("Initial Weight")
<div id="initialWeight">
@Html.DisplayFor(m => m.InitialWeight)
</div>
</div>
Это ajax, который я получил по ссылке ниже:
<script>
$("#orderDropdown").change(function (event) {
$.ajax({
url:"???" + $(this).val(),/* not sure what to use*/
data: { id: $(this).val()},
cache: false,
type: "GET",
dataType: "html",
success: function (data, textStatus, XMLHttpRequest) {
$("#divinitialWeight").html(data);
}
});
});
Вот код контроллера
[HttpGet]
[OpenAction]
public async Task<float> GetInitialWeight(int sid)
{
var initialWeight = await Manager.FindInitialFilterWeightBySID(sid);
return initialWeight.MeanWeight;
}
Метод находится на уровне доступа к данным, на который ссылаются только в основном проекте. Я бы назвал его в контроллере, как показано ниже, и передал бы orderId:
Entities.Manager.FindInitialWeight(orderId);
Entities.Manager.FindFinalWeight(orderId);
Я наткнулся на этот SO вопрос , и он близок к тому, что мне нужно, но единственная проблема - url:
, потому что метод поиска данных не в моем контроллере ... он находится в доступе к данным слой, который является только ссылкой. Также в качестве параметра передается orderId.
Как я могу вызвать этот метод из ajax и передать его orderId из url:
вызова ajax?