#c# #asp.net-mvc
#c# #asp.net-mvc
Вопрос:
если я нахожусь внутри блоков кода, есть ли способ присвоить переменной скрытое значение?
<%
//doing stuff here in addition
Response.Write(Html.Hidden('test'));
// i wanna do something like this
var myVar = Response.Write(Html.Hidden('test'));
%>
Вот что я пытаюсь сделать: я использую javascript, готовясь отправить форму, но я хочу взять то, что выбрано в моем выпадающем списке, и присвоить ему свойство в объекте, которое будет проходить через TempData [«myObj»].
Комментарии:
1. Вы хотите знать, как получить доступ к скрытому полю в JavaScript ИЛИ вы хотите знать, как в c # получить / установить значение?
Ответ №1:
Из моего прочтения вопроса следует, что вы хотите принять значение, выбранное в выпадающем списке, и в конечном итоге присвоить его свойству объекта в коллекции TempData вашего контроллера — это верно?
Предполагая, что это так, лучше всего в MVC использовать объект, который вы хотите поместить в TempData, в качестве аргумента метода action, в который вы отправляете форму, и позволить системе привязки MVC заполнить свойство объекта за вас. Затем вы можете добавить объект в TempData в методе action:
[HttpPost]
public ActionResult ActionMethod(MyObject myObj)
{
this.TempData["myObj"] = myObj;
return this.View();
}
Для работы привязки свойство объекта должно иметь имя, которое (без учета регистра) совпадает с именем поля формы, содержащего его значение. Если имя свойства и имя выпадающего списка не совпадают, вы можете использовать jQuery, чтобы скопировать значение выпадающего списка в скрытое поле с правильным именем, когда форма отправляется следующим образом:
$("#formId").submit(function() {
// Where you have a hidden field with id 'PropertyName':
$("#PropertyName").val($("#dropDownListId").val());
return true;
});
Надеюсь, это поможет, и я не просто понял совершенно неверную идею 🙂