MVC invoca la pagina predefinita quando si apre una pagina diversa?
-
20-08-2019 - |
Domanda
Ho installato una semplice app MVC (RC1) e vedo alcuni comportamenti strani. La pagina Home / Indice mostra un elenco di elementi usando un ListView. Ecco il codice HomeController:
Function Index()
ViewData("results") = From m In context.MyTable
Return View()
End Function
La pagina Home / Index.aspx ha solo un ListView su di essa, e il codice dietro ha questo:
Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
MyListView.DataSource = ViewData("results")
MyListView.DataBind()
End Sub
Funziona bene quando si naviga su Home / Indice. Tuttavia, ho un'altra vista e controller chiamato Form. È solo uno stub in questo momento, quindi ecco FormController:
Function Index()
Return View()
End Function
Form / Index.aspx non ha codice dietro - di nuovo, solo uno stub.
Il problema che vedo è che quando provo a navigare in Form / Index, ottengo " Il riferimento all'oggetto non è impostato su un'istanza di un oggetto. " sul codice dietro Home / Index.aspx.vb. Perchè è questo? Sto cercando di allontanarmi da quella pagina - perché sta cercando di eseguire il codice dietro? Se avvolgo il codice in questo modo:
If ViewData("results") IsNot Nothing Then
MyListView.DataSource = ViewData("results")
MyListView.DataBind()
End If
tutto funziona correttamente, ma non sembra che dovrei farlo. Mi sto perdendo qualcosa?
Aggiornamento: per richiesta, ecco il contenuto di 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>
Soluzione
È giusto?
Inherits="ProviderFeedback.Index"
Non dovrebbe essere Form.Index?