MVC, вызывающий страницу по умолчанию при открытии другой страницы?
-
20-08-2019 - |
Вопрос
У меня настроено простое приложение MVC (RC1), и я вижу некоторое странное поведение.На домашней странице / Индексной странице отображается список элементов с использованием 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
Форма / Index.aspx не содержит никакого кода - опять же, просто заглушка.
Проблема, которую я вижу, заключается в том, что когда я пытаюсь перейти к форме / Индексу, я получаю "Ссылка на объект, не установленная для экземпляра объекта". в коде 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>
Решение
Правильно ли это?
Inherits="ProviderFeedback.Index"
Разве это не должно быть Form.Index?