Visual Studio MVC奇怪?

时间:2011-09-22 14:27:27

标签: asp.net-mvc vb.net

在VS2010中处理MVC项目时,我几天都遇到了同样的DropDownList问题。这个问题现在变得更加令人沮丧,因为当我将所有相关代码复制到一个全新的空白项目中时,第二个实例实际上运行完美并且产生了我期望的结果......

控制器:

<HandleError()> _
Public Class HomeController
    Inherits System.Web.Mvc.Controller

    Function Index() As ActionResult
        ViewData("Message") = "Welcome to ASP.NET MVC!"

        Return View()
    End Function

    Function About() As ActionResult

        Dim configList As List(Of String) = New List(Of String)
        configList.Add("10GBaseLX4")
        configList.Add("10GFC")
        configList.Add("10GigE")
        configList.Add("100BaseFX")
        configList.Add("Test")

        ViewData("cprotocols") = New SelectList(configList)
        Return View()

    End Function
End Class

查看:

<%@ Page Language="VB" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>

<asp:Content ID="aboutTitle" ContentPlaceHolderID="TitleContent" runat="server">
    About Us
</asp:Content>

<asp:Content ID="aboutContent" ContentPlaceHolderID="MainContent" runat="server">
    <h2>About</h2>
   <p>
        <% Using Html.BeginForm()%>
        <%= Html.DropDownList("cprotocols") %>
        <% End Using %>
    </p>
</asp:Content>

页面现在没有做任何事情,除了简单地显示一个下拉列表,其中显示的控制器中显示了硬编码的选项,但是当我的当前网站拒绝显示时,我甚至不打算写逻辑列表给用户。

错误消息是There is no ViewData item of type 'IEnumerable<SelectListItem>' that has the key 'cprotocols'.但是再一次,当我将这段代码复制到一个空白的解决方案时,没有运行时错误。

任何想法如何解决这个甚至任何线索导致这种不一致的原因?我不想将当前项目中的所有其他文件复制到新文件中,只是为了让问题再次出现在某个地方(当代码只有一半损坏时必然会发生...)< / p>

2 个答案:

答案 0 :(得分:0)

我会尝试更改ViewData键名称,看看是否有帮助。如果没有,如果可以的话,你可以创建一个新项目并将所有现有的模型/控制器/视图类复制到另一个项目中,这似乎是项目配置中可能已经发生的事情。

希望这有点帮助:)

答案 1 :(得分:0)

原来这是模块的问题;代码本身很好。我不得不删除临时ASP.NET文件,清理我的GAC,以及核对我项目中的所有当前程序集引用,清理解决方案,重新添加所需的引用,最后清理和重建。我还不清楚为什么VS2010指的是旧版本的装配(简单的清理和重建是不够的)。我也不知道环境在什么时候停止“刷新”并决定简单地引用过时的构建。我将尝试对这一点进行更多的研究,然后再添加到这篇文章中。