相关疑难解决方法(0)

在ListBoxFor中选择值的挑战

最近在我的第一个ASP.Net MVC2 Web应用程序上工作,当我需要在列表框中选择多个值时,我遇到了一些问题.我用一些jQuery解决了这个问题,但是继续编写了一些非常简单的代码来演示.我使用EF作为模型,有两个实体 - Customers和HelpDeskCalls:

控制器:

 public ActionResult Edit(int id)
    {
        Customer currCustomer = ctx.Customers.Include("HelpDeskCalls").Where(c => c.ID == id).FirstOrDefault();
        List<HelpDeskCall> currCustCalls = (ctx.HelpDeskCalls.Where(h => h.CustomerID == id)).ToList();
        List<SelectListItem> currSelectItems = new List<SelectListItem>();
        List<String> selectedValues = new List<string>();
        foreach (HelpDeskCall currCall in currCustCalls)
        {
            bool isSelected = (currCall.ID % 2 == 0) ? true : false;
            //Just select the IDs which are even numbers...
            currSelectItems.Add(new SelectListItem() { Selected = isSelected, Text = currCall.CallTitle, Value = currCall.ID.ToString() });
            //add the selected values …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-mvc-2

45
推荐指数
2
解决办法
4万
查看次数

为什么ListBox不选择项目,但ListBox是?

我在视图中有以下代码:

<%= Html.ListBoxFor(c => c.Project.Categories,
        new MultiSelectList(Model.Categories, "Id", "Name", new List<int> { 1, 2 }))%>

<%= Html.ListBox("MultiSelectList", 
        new MultiSelectList(Model.Categories, "Id", "Name", new List<int> { 1, 2 }))%>
Run Code Online (Sandbox Code Playgroud)

唯一的区别是第一个帮助器是强类型的(ListBoxFor),并且它无法显示所选项(1,2),即使项目出现在列表中,等等.更简单的ListBox正在按预期工作.

我显然在这里遗漏了一些东西.我可以使用第二种方法,但这真的让我烦恼,我想弄清楚.

作为参考,我的模型是:

public class ProjectEditModel
{
    public Project Project { get; set; }
    public IEnumerable<Project> Projects { get; set; }
    public IEnumerable<Client> Clients { get; set; }
    public IEnumerable<Category> Categories { get; set; }
    public IEnumerable<Tag> Tags { get; set; }
    public ProjectSlide SelectedSlide { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

更新 …

asp.net-mvc listbox

30
推荐指数
2
解决办法
4万
查看次数

标签 统计

asp.net-mvc ×2

asp.net-mvc-2 ×1

listbox ×1