J'ai une simple application MVC (RC1) mis en place, et je vois un comportement étrange. La page Accueil/Index affiche une liste d'éléments utilisant un ListView. Voici le code HomeController:MVC invoquant la page par défaut lors de l'ouverture d'une page différente?
Function Index()
ViewData("results") = From m In context.MyTable
Return View()
End Function
La page d'accueil/Index.aspx a juste un ListView là-dessus, et le code a derrière 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 lors de la navigation à l'accueil/Index. Cependant, j'ai une autre vue et un contrôleur appelé Form. Il est juste un bout en ce moment, voici donc la FormController:
Function Index()
Return View()
End Function
Le formulaire/Index.aspx n'a pas de code derrière - encore une fois, juste un bout.
Le problème que je vois est que lorsque j'essaie de naviguer vers Form/Index, j'obtiens "La référence d'objet n'est pas définie sur une instance d'un objet". sur le code derrière Home/Index.aspx.vb. Pourquoi est-ce? J'essaie de m'éloigner de cette page - pourquoi essaie-t-elle d'exécuter le code? Si j'enveloppe 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: Par demande, voici le contenu du formulaire/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>
Pouvez-vous inclure la totalité de Form/Index.aspx? Je sais que c'est "vide", mais j'aimerais voir les en-têtes. –
Ajouté à la question. Pas techniquement "vide", mais je ne fais rien avec l'entrée. – gfrizzle