我正在尝试使用剃刀提交一个简单的表单,需要
<select>
<option id=""> //this is what i neeed to perform an insert >
</option>
</select>
我的剃刀语法如下:
@Html.DropDownListFor(model => model.aPracticar.Value, actividades , "Seleccione la actividad" ,new { @class="form-control" })
由于我需要执行sql连接并且我不知道如何通过剃刀获取该id,因此该值本身不会执行。任何帮助将不胜感激。谢谢!
编辑:
Sory的最新更新。找到一个相对简单的解决方法,因为我必须使用id而不是Javascript函数的选择列表中的值。我完全清楚这可能不是剃刀的正确用法,但与重写整个模型/视图/控制器相比,它被证明是有效的
<div class="editor-label">
@Html.LabelFor(model => model.aPracticar.Value, "Actividad")
</div>
<div class="editor-field">
<select class="form-control" id="aPracticar_Value" >
<option value="">Seleccione la actividad...</option>
@foreach (var actividad in actividades)
{
<option id="@actividad.idDeporte" value="@actividad.Value">
@actividad.Text</option>
}
</select>
@Html.HiddenFor(u => u.aPracticar.idDeporte)
<br />
</div>
但是,我将以下答案中的一个标记为正确,因为它是Razor预期用途的一个示例。再次感谢大家的有益评论。
答案 0 :(得分:1)
如果您的实体具有来自其他实体的外键并且您希望通过razor在DropDown中显示所有其他实体值,则可以首先在您的操作中创建一个selectList,如:
var aPracticar=_modelService.getAll();
ViewBag.Parcticar=new SelectList(aPracticar,"ID","Title");
然后通过viewBag将此selectList发送到您的视图,并在视图中使用如下:
@Html.DropDownListFor(model => model.aPracticar,(SelectList)ViewBag.Parcticar)
它可以在你的html中使用键和值创建selectList,键是aPracticar的Id,值是你想要显示为selectList的标题。
/ *编辑了错误的评论而不是我原来的帖子,对不起! * /
答案 1 :(得分:0)
要通过<Button Text="{Binding Name}" x:Name="BtnClub" AbsoluteLayout.LayoutBounds="100, 25, 100, 25" Clicked="OnListClubsClicked" TextColor="Black" VerticalOptions="FillAndExpand" CommandParameter="{Binding Id}" />
async void OnListClubsClicked(object sender, EventArgs e)
{
Button btn = (Button) sender;
int clubid = (int) btn.CommandParameter;
// pass the clubid to your Detail page
await Navigation.PushAsync(new DetailedClub(clubid));
}
帮助程序插入下拉列表选项,请从预定义模型构建DropDownList
或创建List<SelectListItem>
构造函数:
SelectList
它们都将大致翻译为HTML:
// assume Model.Selecciones is an IEnumerable option list
@Html.DropDownListFor(model => model.aPracticar, "actividades", new SelectList(Model.Selecciones), new { @class="form-control" })
// assume Model.ListaSelecciones is a SelectListItem option list
@Html.DropDownListFor(model => model.aPracticar, "actividades", Model.ListaSelecciones, new { @class="form-control" })
如果要构建SelectListItem列表:
<select class="form-control" name="aPracticar">
<option value="Valor">Texto</option>
<!-- other option values -->
</select>
但是,如果您倾向于直接绑定选择列表项以进行查看,请首先在模型上提供文本值对。
从下拉列表中选择的值将自动插入到表单提交的Model.ListaSelecciones = new List<SelectListItem>();
lista.Add(new SelectListItem() { Text = "Texto", Value = "Valor" } // example for adding option item to drop down list
属性中。
附录:默认情况下,DropDownList生成的选项标记不包含“id”属性。您需要使用与此类似的扩展选项标记属性制作自定义HTML帮助程序:
model.aPracticar
请阅读https://msdn.microsoft.com/en-us/library/system.web.mvc.html.selectextensions.dropdownlist(v=vs.118).aspx以正确使用DropDownListFor模型绑定。