¿MVC invoca la página predeterminada al abrir una página diferente?
-
20-08-2019 - |
Pregunta
Tengo una aplicación MVC (RC1) simple configurada, y veo un comportamiento extraño. La página de inicio / índice muestra una lista de elementos mediante ListView. Aquí está el código de HomeController:
Function Index()
ViewData("results") = From m In context.MyTable
Return View()
End Function
La página Inicio / Index.aspx solo tiene un ListView en él, y el código detrás tiene esto:
Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
MyListView.DataSource = ViewData("results")
MyListView.DataBind()
End Sub
Esto funciona bien cuando se navega a Inicio / Índice. Sin embargo, tengo otra vista y controlador llamado Form. Es solo un trozo en este momento, así que aquí está el FormController:
Function Index()
Return View()
End Function
El Form / Index.aspx no tiene código detrás, de nuevo, solo un trozo.
El problema que veo es que cuando trato de navegar a Form / Index, obtengo " La referencia de objeto no está establecida en una instancia de un objeto. " en el código detrás de Inicio / Index.aspx.vb. ¿Por qué es esto? Estoy tratando de navegar fuera de esa página, ¿por qué está tratando de ejecutar el código detrás? Si envuelvo el código así:
If ViewData("results") IsNot Nothing Then
MyListView.DataSource = ViewData("results")
MyListView.DataBind()
End If
todo funciona correctamente, pero no parece que deba hacerlo. ¿Me estoy perdiendo algo?
Actualización: por solicitud, aquí está el contenido de 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>
Solución
¿Es esto correcto?
Inherits="ProviderFeedback.Index"
¿No debería ser Form.Index?