c# Controller 中 razor 的 selectList 的值
value of selectList from razor in c# Controller
我为这个问题苦苦挣扎了很长时间。
我希望我的 selectListItem 的值在控制器中使用它来进行正确的 API 调用。
这就是我在剃须刀中的代码:
var selectList = new SelectList(
new List<SelectListItem>
{
new SelectListItem {Text = "Borussia Dortmund", Value = "10303", Selected= false},
new SelectListItem {Text = "FC Bayern München", Value = "10285", Selected= false},
new SelectListItem {Text = "Bayer 04 Leverkusen", Value = "10281", Selected= false},
.
.
.
}, "Value", "Text", 1);
@Html.DropDownList("ddlChosenTeam", selectList, "Team wählen", new { @class = "css-class" })
}
如果我在控制器中尝试以下操作,它不知道 selectList:
protected void SquadChosen_Click(object sender, EventArgs e)
{
int selectedSquad = selectList.SelectedValue;
}
如果选择"borussia Dortmund",我只想选择10303这样的值,请注意安全。
编辑:
我写了一些其他代码,这些代码可能更符合我的需要。
我的控制器现在:
public SelectList UserChosenSquad()
{
var ssl = new SelectList(new List<SelectListItem>
{
new SelectListItem {Text = "Borussia Dortmund", Value = "10303", Selected = false},
new SelectListItem {Text = "FC Bayern München", Value = "10285", Selected = false},
new SelectListItem {Text = "Bayer 04 Leverkusen", Value = "10281", Selected = false},
}, "Value", "Text");
return ssl;
}
模特:
public class ChosenSquad
{
public string Text { get; set; }
public string Value { get; set; }
public bool Selected { get; set; }
}
现在我很难接受风景
@model ChosenSquad
@{
@Html.DropDownListFor(model => model.Text, Model.SelectListItem, "Text", "-Team wählen-")
这是正确的方法吗?
我需要显示 DropDownList,然后像以前一样显示值,我首先想查看我的列表,然后可能使用查找所选项目的 if 方法获取值,对吧!?
尽管我不同意您创建此下拉列表的方式,因为您实际上不应该在视图中创建和定义新变量。要将数据从视图传递到控制器,您应该在下拉列表中有一个调用 javascript 函数的 onchange 事件。
@Html.DropDownList("ddlChosenTeam", selectList, "Team wählen", new { @class = "css-class", onchange="javascript:sendToController(this.value)" })
和 javascript 函数看起来应该有点像这样:
function sendToController(value)
{
var json = '{value: ' + value + '}';
$.ajax({
url:'@Url.Action('method','controller')',
type: 'POST',
data: json,
contentType:'Application/json',
success:function(result){
//whatever you're doing next
}
});
}
知道了。我刚刚像这样编辑了我的列表:
public List<SelectListItem> ChosenSquad()
{
var ssl = new List<SelectListItem>
{
new SelectListItem {Text = "Borussia Dortmund", Value = "10303", Selected = false},
new SelectListItem {Text = "FC Bayern München", Value = "10285", Selected = false},
new SelectListItem {Text = "Bayer 04 Leverkusen", Value = "10281", Selected = false},
return ssl;
}
在我看来,我得到了以下信息:
<select id=SquadSelectList asp-items="@((List<SelectListItem>)ViewData["Teams"])"></select>
现在它呈现列表,我只需要在选择时从中获取值,帮助会很大,但最重要的事情已经完成。
我为这个问题苦苦挣扎了很长时间。 我希望我的 selectListItem 的值在控制器中使用它来进行正确的 API 调用。
这就是我在剃须刀中的代码:
var selectList = new SelectList(
new List<SelectListItem>
{
new SelectListItem {Text = "Borussia Dortmund", Value = "10303", Selected= false},
new SelectListItem {Text = "FC Bayern München", Value = "10285", Selected= false},
new SelectListItem {Text = "Bayer 04 Leverkusen", Value = "10281", Selected= false},
.
.
.
}, "Value", "Text", 1);
@Html.DropDownList("ddlChosenTeam", selectList, "Team wählen", new { @class = "css-class" })
}
如果我在控制器中尝试以下操作,它不知道 selectList:
protected void SquadChosen_Click(object sender, EventArgs e)
{
int selectedSquad = selectList.SelectedValue;
}
如果选择"borussia Dortmund",我只想选择10303这样的值,请注意安全。
编辑: 我写了一些其他代码,这些代码可能更符合我的需要。 我的控制器现在:
public SelectList UserChosenSquad()
{
var ssl = new SelectList(new List<SelectListItem>
{
new SelectListItem {Text = "Borussia Dortmund", Value = "10303", Selected = false},
new SelectListItem {Text = "FC Bayern München", Value = "10285", Selected = false},
new SelectListItem {Text = "Bayer 04 Leverkusen", Value = "10281", Selected = false},
}, "Value", "Text");
return ssl;
}
模特:
public class ChosenSquad
{
public string Text { get; set; }
public string Value { get; set; }
public bool Selected { get; set; }
}
现在我很难接受风景
@model ChosenSquad
@{ @Html.DropDownListFor(model => model.Text, Model.SelectListItem, "Text", "-Team wählen-")
这是正确的方法吗? 我需要显示 DropDownList,然后像以前一样显示值,我首先想查看我的列表,然后可能使用查找所选项目的 if 方法获取值,对吧!?
尽管我不同意您创建此下拉列表的方式,因为您实际上不应该在视图中创建和定义新变量。要将数据从视图传递到控制器,您应该在下拉列表中有一个调用 javascript 函数的 onchange 事件。
@Html.DropDownList("ddlChosenTeam", selectList, "Team wählen", new { @class = "css-class", onchange="javascript:sendToController(this.value)" })
和 javascript 函数看起来应该有点像这样:
function sendToController(value)
{
var json = '{value: ' + value + '}';
$.ajax({
url:'@Url.Action('method','controller')',
type: 'POST',
data: json,
contentType:'Application/json',
success:function(result){
//whatever you're doing next
}
});
}
知道了。我刚刚像这样编辑了我的列表:
public List<SelectListItem> ChosenSquad()
{
var ssl = new List<SelectListItem>
{
new SelectListItem {Text = "Borussia Dortmund", Value = "10303", Selected = false},
new SelectListItem {Text = "FC Bayern München", Value = "10285", Selected = false},
new SelectListItem {Text = "Bayer 04 Leverkusen", Value = "10281", Selected = false},
return ssl;
}
在我看来,我得到了以下信息:
<select id=SquadSelectList asp-items="@((List<SelectListItem>)ViewData["Teams"])"></select>
现在它呈现列表,我只需要在选择时从中获取值,帮助会很大,但最重要的事情已经完成。