html.hiddenvalue присвоить его переменной

#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;
});
  

Надеюсь, это поможет, и я не просто понял совершенно неверную идею 🙂