是的,我知道,这个问题被提出/回答了34798796873.5次.我查看了所有3个bajillion,我仍然有问题.我在这里错过了什么?
我尝试了几种方法,但没有一种方法可行.以下是我最近的尝试:
<%:Html.DropDownList("Author",
Model.AuthorItems.Select(i =>
new SelectListItem
{
Text = i.Name,
Value = i.Id.ToString(),
Selected = i.Id == Model.Author.Id
}), "??")%>
<%:Html.DropDownListFor(m => m.Author,
new SelectList(Model.AuthorItems,
"Id",
"Name",
Model.Author),
"??") %>
Run Code Online (Sandbox Code Playgroud)
我的视图模型非常简单:
public class EditArticleViewModel
{
public AuthorItem Author { get; set; }
public IList<AuthorItem> AuthorItems { get; set; }
public class AuthorItem
{
public int Id { get; set; }
public string Name { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
我确保我的行动正常; 果然,作者的Id为5,而AuthorItems的Id为5.
我甚至尝试在模型中重写Equals和GetHashCode.
Blahhhhh !! 1
我怎样才能将以下内容转换为yii2
$dependency = new CDbCacheDependency('SELECT count(*) FROM job_title');
$jobTitle = JobTitle ::model()->cache(CACHE_TIMEOUT,$dependency)->findAll($array);
$jobTitleList = CHtml::listData($jobTitle, 'job_title_id','desc');
return $jobTitleList;
Run Code Online (Sandbox Code Playgroud)
我有以下代码不起作用.
use yii\db\ActiveRecord;
use yii\helpers\ArrayHelper;
use yii\helpers\Html;
$items = array();
foreach (Jobsprocess::find()->where($array)->all() as $value) {
$items[$value->process_id] = $value->jobsprocess;
}
return $items;
Run Code Online (Sandbox Code Playgroud) @Html.DropDownListFor(model => model.Activity.ActivityType, new
SelectList(Model.ActivityTypes, "ActivityTypeId", "Name") )
Run Code Online (Sandbox Code Playgroud)
我在视图中得到了上面的下拉列表.在我的表单上提交时,所选的ActivityType无法绑定到我的模型中的Model.Activity.ActivityType属性.
有一个错误说无法将字符串转换为ActivityType.
我假设这是因为它只是试图绑定ActivityType的Name属性而不是整个对象.
我需要做些什么来确保在提交表单时所选的ActivityType正确绑定到模型?
谢谢
我在使用Razor语法的MVC 3中的代码片段有问题.在我的数据库表(MySQL)中,我有一个列(FK)LanguageID [int]
.然后,在该视图中,我想将该列分配给DropDownList,其中包含我即时生成的语言列表:
List<SelectListItem> list = new List<SelectListItem>();
list.Add(new SelectListItem
{
Value = tableRow.ID.ToString()
,
Text = "language"
}
Run Code Online (Sandbox Code Playgroud)
然后,在View中,我将该列表连接到Language属性:
@Html.DropDownListFor(
model => model.Language,
new SelectList(ViewData["LanguageList"] as List<SelectListItem>,
"Value", "Text")
)
Run Code Online (Sandbox Code Playgroud)
但是,当我将数据发布到服务器时,它返回错误结果"The value '353' is invalid."
,其中353
是来自数据库的语言ID.我究竟做错了什么 ?
编辑Whle调试,我注意到ModelState中的错误消息: "The parameter conversion from type 'System.String' to type 'FavorytaWeb.Models.BookLanguage' failed because no type converter can convert between these types."
我一直在互联网上搜索并阅读了很多不同的方法来做到这一点,但由于某种原因,它们都不适合我。我这里一定缺少什么东西。我想做的是在选中复选框时用特定的选定值更新下拉列表。
用于选择的 HTML
<select data-hands-jqui-props="{"header":true,"height":175,"minWidth":225,"classes":"","checkAllText":"Check all","uncheckAllText":"Uncheck all","noneSelectedText":"Select option","selectedText":"# selected","selectedList":1,"autoOpen":false,"multiple":false,"disabled":false,"handsOnCreate":null}" data-hands-jqui-type="multiselect" data-val="true" data-val-date="The field must be a date." id="SundayOpen" name="SundayOpen"><option value=""></option>
<option value="4/17/2013 12:00:00 AM">12:00 AM</option>
<option value="4/17/2013 12:15:00 AM">12:15 AM</option>
<option value="4/17/2013 12:30:00 AM">12:30 AM</option>
<option value="4/17/2013 12:45:00 AM">12:45 AM</option>
<option value="4/17/2013 1:00:00 AM">1:00 AM</option>
<option value="4/17/2013 1:15:00 AM">1:15 AM</option>
<option value="4/17/2013 1:30:00 AM">1:30 AM</option>
<option value="4/17/2013 1:45:00 AM">1:45 AM</option>
<option value="4/17/2013 2:00:00 AM">2:00 AM</option>
<option value="4/17/2013 2:15:00 AM">2:15 AM</option>
<option value="4/17/2013 2:30:00 AM">2:30 AM</option>
<option value="4/17/2013 2:45:00 AM">2:45 AM</option> …
Run Code Online (Sandbox Code Playgroud) javascript asp.net-mvc jquery selectedvalue html.dropdownlistfor
无法将SelectListItem.Value属性从转换string
为Boolean
。如何创建一个简单的是/与价值无选项true
/ false
?
private List<SelectListItem> getYNOptions()
{
List<SelectListItem> yn = new List<SelectListItem>();
yn.Add(new SelectListItem() {
Text = "Yes",
Value=true, // error
Selected = false
});
yn.Add(new SelectListItem()
{
Text= "No",
Value = false, // error
Selected = false
});
return yn;
}
public ActionResult Index(){
ViewBag.selectList = getYNOptions();
return View();
}
Run Code Online (Sandbox Code Playgroud)
视图
@Html.DropDownListFor(model => model.YesOrNo, new SelectList(ViewBag.selectList,"Value","Text"), "-- Select --")
Run Code Online (Sandbox Code Playgroud) 我试图在我的mvc应用程序中基于model属性禁用或启用dropdownlistfor: -
我在做的是: -
@Html.DropDownListFor(m => m.ParentOrganisationID, new SelectList(Model.ParentOrganisations, "ID", "Name", Model.ParentOrganisationID), new { @id = "ddlParentOrganisations", @class = "form-control css-select", @disabled = Model.IsReadOnly ? "disabled" : "false", @style = "width:40%; height:10%;" })
Run Code Online (Sandbox Code Playgroud)
但即使模型属性"model.IsReadOnly"为false,它也会将下拉列表显示为已禁用.
请建议如何处理此问题,而不使用任何JavaScript
提前致谢