MVC在打开不同的页面时调用默认页面?

时间:2009-01-30 14:56:12

标签: asp.net-mvc html-helper

我有一个简单的MVC(RC1)应用程序设置,我看到一些奇怪的行为。 Home / Index页面使用ListView显示项目列表。这是HomeController代码:

Function Index()
    ViewData("results") = From m In context.MyTable
    Return View()
End Function

Home / Index.aspx页面上只有一个ListView,后面的代码有:

Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    MyListView.DataSource = ViewData("results")
    MyListView.DataBind()
End Sub

导航到Home / Index时工作正常。但是,我有另一个名为Form的视图和控制器。它现在只是一个存根,所以这里是FormController:

Function Index()
    Return View()
End Function

Form / Index.aspx没有代码 - 再次,只是一个存根。

我看到的问题是,当我尝试导航到Form / Index时,我得到“对象引用未设置为对象的实例”。关于Home / Index.aspx.vb背后的代码。为什么是这样?我正试图离开那个页面 - 为什么它试图执行后面的代码?如果我像这样包装代码:

If ViewData("results") IsNot Nothing Then
    MyListView.DataSource = ViewData("results")
    MyListView.DataBind()
End If

一切正常,但似乎我不应该这样做。我错过了什么吗?

更新:每个请求,这是Form / Index.aspx的内容:

<%@ Page Title="" Language="VB" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="false" CodeBehind="Index.aspx.vb" Inherits="ProviderFeedback.Index" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
    <h3>
        Enter Provider Feedback
    </h3>
    <form method="post" action="/Form/CreateNew">
        <%=Html.TextBox("member")%>
        <input type="submit" value="Submit" />
    </form>
</asp:Content>

1 个答案:

答案 0 :(得分:1)

这是对的吗?

Inherits="ProviderFeedback.Index"

不应该是Form.Index吗?