0

我的视图中有两件事“ListUrl.cshtml”,一个包含 URL 名称的下拉列表。我将“URLs”作为第一列大写的列表。

我想要的是当我从下拉列表中选择一个项目时,列表会根据选择自动调整。当我选择一个 URL 时,我只能在列表中看到该 URL。

在模型中:

public class UrlItem
{
    public int Id { get; set; }
    public string urlll { get; set; }
    public int toontijd { get; set; }
    public int positie { get; set; }
}

在 HomeController 中:

public ViewResult ListUrl()
    {
        var ws = new Service1();

        localhost.Service1 s1 = new Service1();
        localhost.UrlInfo[] ui = s1.GetOrders();

        Models.ListUrl.UrlList = new List<OrderItem>();

        for (int i = 0; i < ui.Length; i++)
        {
            var OrderItem = new OrderItem();
            OrderItem.Id = Convert.ToInt32(ui[i].Id);
            OrderItem.urlll = ui[i].url;
            OrderItem.toontijd = ui[i].ToonTijd;
            OrderItem.positie  = Convert.ToInt32(ui[i].positie);

            Models.ListUrl.UrlList.Add(OrderItem);
        }

        //return result;
        var urlname = from url in s1.GetUrlInfo() select url  ;
        ViewData["url"] = new SelectList(urlname, "Id", "url");



        return View();

    }

在视图中:

<table>
<tr>
    <th>
        @Html.DropDownList("url", (SelectList)ViewData["url"], "---All")
    </th>
    <th></th>
    <th></th>
    <th></th>
</tr>
<tr>
    <th>
        Url
    </th>
    <th>
        ...
    </th>
    <th>             
    </th>
    <th>
        ...
    </th>
</tr>

@foreach (var item in ListUrl.UrlList)
{
    <tr>
        <td>
            @item.urlll.ToString()        
        </td>
        <td>
            @item.toontijd.ToString()

        </td>
        <td>

        </td>
        <td>
            @item.positie.ToString()
        </td>
    </tr>

}

我希望有人可以帮助这个 mvc 初学者:)

4

1 回答 1

0

您需要先下拉整个列表(在您的辅助下拉列表中),然后在第一次下拉选择后使用 Javascript 删除任何不需要的条目。或者,您可以在选择第一个值后进行 Ajax 调用以检索辅助值列表。无论哪种方式,都必须发生一些客户端的事情。请参阅下面的帖子,示例代码完全符合您使用返回部分视图的 ajax 调用所做的工作。

Ajax 调用后 MVC3 不显眼的验证不起作用

于 2013-06-25T14:47:30.017 回答