У меня есть метод jQuery getJson, который правильно возвращает выбранный CustomerID. Когда это произойдет, кнопка позволяет отправить CustomerID другому методу контроллера, который затем откроет форму для изменения клиента.
Я проверяю коллекцию Form, но нет значения, связанного с идентификатором коллекции. Он просто выходит как "CustomerID" без ценности.
Как я могу успешно передать это значение другому контроллеру с помощью коллекции форм?
Я знаю, что секция скрипта содержит идентификатор var CustomerID, а BeginForm имеет значение скрытого поля, но, очевидно, нет никакой "связи" между ними. Мне интересно, как я могу это сделать...
Итак, как я могу получить значение переменной JS внутри CustomerID в форме?
@section scripts {
<script type="text/javascript">
$(function ()
{
var selID = null;
var CustomerID = null;
$("#Name").change(function ()
{
selID = $("#Name option:selected").val();
var url = '/Project/SpecificCustomer';
var param = { Id: selID };
$.getJSON(url, param, function (data)
{
var html = "<table border='1' cellpadding='3'>";
html += "<tr>";
html += "<td>" + "Customer ID: " + data.CustomerID + "</td>";
CustomerID = data.CustomerID;
html += "</tr>";
html += "<tr>";
html += "<td>" + "Email: " + data.Email + "</td>";
html += "</tr>";
html += "<tr>";
var FirstName = data.FirstName;
FirstName == null ? "" : FirstName;
var LastName = data.LastName;
LastName == null ? "" : LastName;
html += "<td>" + "Name: " + FirstName + " " + LastName + "</td>";
html += "</tr>";
html += "<tr>";
var date1 = new Date(parseInt(data.CreatedDate.substr(6)));
date1 == null ? "" : date1;
html += "<td>" + "Created: " + date1 + "</td>";
html += "</tr>";
html += "<tr>";
var date2 = new Date(parseInt(data.UpdatedDate.substr(6)));
date2 == null ? "" : date2;
html += "<td>" + "Updated: " + date2 + "</td>";
html += "</tr>";
html += "</table>";
$("#divData").html('');
$("#divData").append(html);
if (CustomerID != null)
$("#UpdateCust").prop('disabled', false);
});
});
});
</script>
}
@using (Html.BeginForm("Index", "Customer", new AjaxOptions { HttpMethod = "POST" }))
{
<fieldset>
<legend>Edit Customer</legend>
<div class="editor-field">
<input type="hidden" id="custID" name="custID" value="CustomerID" />
<input type="submit" id="UpdateCust" value='@Resources.Update' disabled="disabled" />
</div>
</fieldset>
}
public ActionResult Index(FormCollection form)
{
string custID = form["custID"];
...
Это не понятно, но если форма находится на той же странице, что и скрипт getJSON
, вы можете изменить последние строки вашего JavaScript:
if (CustomerID != null) {
$("#UpdateCust").prop('disabled', false);
$("#custID").val(data.CustomerID);
}