MVC, вызывающий страницу по умолчанию при открытии другой страницы?

StackOverflow https://stackoverflow.com/questions/495774

  •  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?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top