MVC appelant la page par défaut lors de l'ouverture d'une page différente?
-
20-08-2019 - |
Question
J'ai une simple application MVC (RC1) configurée et je constate un comportement étrange. La page Accueil / Index affiche une liste d'éléments à l'aide d'un ListView. Voici le code HomeController:
Function Index()
ViewData("results") = From m In context.MyTable
Return View()
End Function
La page Home / Index.aspx contient simplement un ListView et le code derrière a ceci:
Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
MyListView.DataSource = ViewData("results")
MyListView.DataBind()
End Sub
Cela fonctionne bien lorsque vous accédez à Home / Index. Cependant, j'ai une autre vue et contrôleur appelé Form. C'est juste un talon en ce moment, alors voici le FormController:
Function Index()
Return View()
End Function
Le formulaire / index.aspx n'a pas de code derrière - encore une fois, un stub.
Le problème que je vois est que lorsque j'essaie de naviguer vers Form / Index, j'obtiens & "Référence d'objet non définie sur une instance d'objet. &"; sur le code derrière Home / Index.aspx.vb. Pourquoi est-ce? J'essaie de naviguer en dehors de cette page - pourquoi tente-t-il d'exécuter le code derrière? Si j'emballe le code comme ceci:
If ViewData("results") IsNot Nothing Then
MyListView.DataSource = ViewData("results")
MyListView.DataBind()
End If
tout fonctionne correctement, mais il ne semble pas que je devrais le faire. Est-ce que je manque quelque chose?
Mise à jour: voici le contenu 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>
La solution
Est-ce exact?
Inherits="ProviderFeedback.Index"
Cela ne devrait-il pas être Form.Index?