首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Request.Form()访问下拉文本(而不是值)?

问如何使用Request.Form()访问下拉文本(而不是值)?
EN

Stack Overflow用户
提问于 2012-01-31 18:24:54
回答 4查看 7.1K关注 0票数 1

我正在MVC4.0上工作。

我需要在控制器代码中使用Request.Form("ddlId")来访问下拉框文本(而不是值)。

并在注册确认页面上显示所选信息。

也就是说,让我们考虑如下所示的Country dropbox。

代码语言:javascript
复制
 <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>

现在,在控制器中,当我使用

代码语言:javascript
复制
            objWizard.CountryId = Request.Form["CountryId"];

我得到的是COuntry dropbox的值,而不是用户选择的文本。

如何使用Request.Form(...)选择下拉框的文本?

或任何其他选择.

我的jquery代码如下所示。

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

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-01-31 18:52:00

我将假设您正在发布一个表单,该表单如下所示

代码语言:javascript
复制
<form>
<select id="CountryId">
  <option value=1>US</option>
  <option value=2>UK</option>
</select>
<input type="submit" value="submit" id="btnSubmit"/>
</form>

在表单提交时取消默认行为

代码语言:javascript
复制
$("#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);
  });
});

在控制器中

代码语言:javascript
复制
[HttpPost]
public ActionResult ConfirmDetails()
  {

   var countryName = Request.Form["CountryName"];
  }
票数 1
EN

Stack Overflow用户

发布于 2012-01-31 18:34:42

您可以使用JQuery post来实现这一点,

代码语言:javascript
复制
var selectedLi=$('#CountryId option:selected');

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

在你的行动中,你可以得到这样的值,

代码语言:javascript
复制
 public ActionResult Action(string CountryName,string CountryId )
  {

//...........
  }
票数 1
EN

Stack Overflow用户

发布于 2012-01-31 19:09:00

您可以在服务器上发出value标记作为国家/地区名称,从而避免对javascript的任何需要。

代码语言:javascript
复制
<select id="CountryId">
  <option value="US">US</option>
  <option value="UK">UK</option>
</select>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9077910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档