Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何在MVC中从formcollection对象检索文本_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 如何在MVC中从formcollection对象检索文本

Asp.net mvc 如何在MVC中从formcollection对象检索文本,asp.net-mvc,Asp.net Mvc,formcollection对象中的值存储为键值对。但是,假设有人使用“Id”作为值,“Name”作为文本来填充dropdownlist。在这种情况下,如何使用formcollection对象从dropdownlist访问“名称” 要访问所选值,我知道以下代码: public ActionResult ActionName(FormCollection formcollection) { var value = formcollection["dropdownlistName"]; }

formcollection对象中的值存储为键值对。但是,假设有人使用“Id”作为值,“Name”作为文本来填充dropdownlist。在这种情况下,如何使用formcollection对象从dropdownlist访问“名称”

要访问所选值,我知道以下代码:

public ActionResult ActionName(FormCollection formcollection)
{
   var value = formcollection["dropdownlistName"];
}
上面的代码将给出值“Id”,但如果我需要检索“Name”并将其存储在变量中,该怎么办


我是个新手;如果有人知道,请帮忙。谢谢你的帮助。谢谢。

您无法将下拉列表文本发布到服务器,只能发送值。这里有一些解决方法——您可以手动发布数据并添加下拉文本。但是正确的方法是首先从您填写下拉列表的源中引用
id

例如:

如果您有这样的下拉列表:

<form id="someForm">
<select id="country" name="countryddl">
    <option value="1">US</option>
    <option value="2">UK</option>
</select>
<input type="submit" value="submit"/>
</form>
var countryName = formcollection["countryName"];
解决方法

如果绝对必须在表单中发送文本,则可以覆盖表单提交时的默认行为,并将下拉文本与值一起发布:

$("#btnSubmit").click(function(e){
    e.preventDefault();

    var selectedOption = $("#CountryId option:selected").text();
    // Add the selected drop down text to a hidden field
    $("<input/>",{type:'hidden',name:'countryName'}).val(selectedOption).appendTo("#someForm");
    // now post the form 
    $("#someForm").submit();
});

解决方法是否是一种不太理想的方法?若然,原因为何?
var countryName = formcollection["countryName"];