我使用的是asp.net c#mvc4
我目前可以从我的视图中检索控制器中所选选项的值,但我还需要检索文本。我的视图和控制器看起来像这样:
查看:
<form method="post" action="myAction">
<select name="sel">
<option value="1" text="One">One</option>
<option value="2" text="Two">Two</option>
</select>
</form>
控制器:
public ActionResult myAction(int sel)
{
int selValue = sel;
}
这段代码适合我。但是,在我的控制器中,我想添加string selText=something
以便我也有文本,代码看起来像:
public ActionResult myAction(int sel, string something)
{
int selValue = sel;
string selText = something
}
有人可以帮我吗?
答案 0 :(得分:2)
一般情况下,您无法获取文本,因为表单仅发布了select的值。但是,您可以从服务器(在模型或ViewBag中)动态填充选择列表,当您收到带有值的帖子时 - 获取与该值对应的文本。
这是一种非常常见的模式,不需要任何解释。你永远不会发回文本,因为你不需要它。
无论如何这里是代码:
public ActionResult myAction(int sel)
{
int selValue = sel;
string text= yourRepository.GetById(sel)?.YourText;
}
答案 1 :(得分:1)
您可以使用分隔符将(值和文本)放入value属性。
<form method="post" action="myAction">
<select name="sel">
<option value="1|One">One</option>
<option value="2|Two">Two</option>
</select>
</form>
再次在控制器中将其分开。
public ActionResult myAction(string sel)
{
string[] selSplit = sel.Split('|');
int selValue = int.Parse(selSplit[0]);
string selText = selSplit[1];
}