【问题标题】:ASP MVC DropdownASP MVC 下拉菜单
【发布时间】:2009-11-06 10:22:31
【问题描述】:

请看我的代码。我正在尝试在下拉菜单中显示一些动态客户。并在选择客户按钮后按下。然后所选客户拥有的产品应显示在文本区域中。但问题是,选择客户并按下按钮后,文本区域中没有显示任何内容!。由于我是 ASP MVC 的新手,你能帮我解决这个问题吗?

控制器类-------->

public class ProductsController : Controller
{

    CandidateEntities db;

    public ProductsController()
    {
        db = new CandidateEntities();
    }

    public ActionResult Index()
    {
        ViewData["Customers"] = new SelectList(db.Customer.ToList(), "CustomerId", "Firstname");
        return View();
    }

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Index(FormCollection form)
    {
        int customerId = int.Parse(form["Customers"]);
        var cust = db.Customer.First(x=>x.CustomerId == customerId);
        var Query =
            from customer in db.Customer
            join prod in db.Products on customerId equals prod.Customer.CustomerId
            select prod;
        ViewData["Products"] = Query.ToString(); 
        return View("Index");
    }



}

索引视图----------------->

索引

<%using(Html.BeginForm()){ %>   
    <%=Html.DropDownList("Customers", "Seletc one")%>
    <input type="submit" value="Click !" />

    <%=Html.TextArea("Textarea", ViewData["Products"]) %>
<%} %>

【问题讨论】:

    标签: asp.net asp.net-mvc drop-down-menu


    【解决方案1】:

    您确定您的查询正在返回结果吗?它似乎在为每个客户查询每个产品,它可能会被重写为:

    from product in db.Prodcuts
    where product.Customer.CustomerID = customerId
    select product
    

    另外,(这取决于您的代码),但是在 Product 对象列表上调用 ToString 会返回您想要的吗?

    【讨论】:

      【解决方案2】:
      db.Products.Where(p => p.CustomerId == cust)
      

      db.Customer.Find(cust).Products
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-09-13
        • 1970-01-01
        • 1970-01-01
        • 2014-09-20
        • 2018-04-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多