MVC вызывает страницу по умолчанию при открытии другой страницы? - PullRequest
0 голосов
/ 30 января 2009

У меня установлено простое приложение 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

Это прекрасно работает при переходе на главную / указатель. Тем не менее, у меня есть другое представление и контроллер под названием Form. Сейчас это просто заглушка, поэтому вот FormController:

Function Index()
    Return View()
End Function

Form / Index.aspx не имеет кода позади - опять же, заглушка.

Проблема, с которой я сталкиваюсь, заключается в том, что при попытке перейти к форме / индексу я получаю «Ссылка на объект не установлена ​​на экземпляр объекта». на код позади дома / 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 Ответ

1 голос
/ 30 января 2009

Это правильно?

Inherits="ProviderFeedback.Index"

Разве это не должен быть Form.Index?

...