Как получить доступ к раскрывающемуся тексту (не к значению), используя Request.Form ()? - PullRequest
1 голос
/ 31 января 2012

Я работаю над MVC 4.0.

Мне нужно получить доступ к моему раскрывающемуся окну Text (не значение), используя Request.Form ("ddlId") в коде моего контроллера.

и отображение выбранной информации на странице подтверждения регистрации.

т.е. давайте рассмотрим, у меня есть Dropbox страны, как показано ниже.

 <select data-val="true" data-val-required="Required" id="CountryId" name="CountryId" style="width:210px"><option value="">--Select--</option><option value="1">USA</option><option value="2">UK</option></select>

сейчас, в контроллере, когда я использую,

            objWizard.CountryId = Request.Form["CountryId"];

Я получил значение выпадающего списка COuntry, а не текст, выбранный пользователем.

Как я могу выбрать текст в Dropbox, используя Request.Form (...) ????

Или любая другая альтернатива ........

Мой код JQuery, как показано ниже.

   $.post( '@Url.Action("ConfirmDetails", "Wizard")', $("form").serialize(), function (r)
                    {
                        // inject response in confirmation step
                        //$(".wizard-step:visible")
                        $("#confirmdiv").html(r);
                    });

Ответы [ 4 ]

1 голос
/ 31 января 2012

Я буду считать, что вы публикуете форму и она выглядит как

<form>
<select id="CountryId">
  <option value=1>US</option>
  <option value=2>UK</option>
</select>
<input type="submit" value="submit" id="btnSubmit"/>
</form>

при отправке формы отмена поведения по умолчанию

$("#btnSubmit").click(function(e){
e.preventDefault();
//now make a hidden field here and put the text of selected option in that 
var selectedOption = $("#CountryId option:selected").text();
$("<input/>",{type:'hidden',name:'CountryName'}).val(selectedOption).appendTo("form");
// now post the form 
$.post( '@Url.Action("ConfirmDetails", "Wizard")', $("form").serialize(),function (r)
  {
   // inject response in confirmation step
   //$(".wizard-step:visible")
   $("#confirmdiv").html(r);
  });
});

в контроллере

[HttpPost]
public ActionResult ConfirmDetails()
  {

   var countryName = Request.Form["CountryName"];
  }
1 голос
/ 31 января 2012

Для этого вы можете использовать JQuery post ,

var selectedLi=$('#CountryId option:selected');

$.post('controller/action',{CountryId :selectedLi.val(),CountryName:selectedLi.text() }, function(data) {
  $('.result').html(data);
});

И в своем действии вы можете получить такие значения, как это,

 public ActionResult Action(string CountryName,string CountryId )
  {

//...........
  }
0 голосов
/ 17 июля 2015

Вы можете использовать, ddlHospitalName.Items.FindByValue (Convert.ToString (Request.Form [ "ctl00 $ ContentPlaceholder $ ddlHospitalName"])) Текст;.

0 голосов
/ 31 января 2012

Вы можете использовать тег значения в качестве названия страны на сервере и избежать необходимости в JavaScript.

<select id="CountryId">
  <option value="US">US</option>
  <option value="UK">UK</option>
</select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...