У меня установлено простое приложение MVC (RC1), и я вижу странное поведение. Страница Home / Index показывает список элементов, используя 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
Это прекрасно работает при переходе на главную / указатель. Тем не менее, у меня есть другое представление и контроллер под названием Form. Сейчас это просто заглушка, поэтому вот FormController:
Function Index()
Return View()
End Function
Form / Index.aspx не имеет кода позади - опять же, заглушка.
Проблема, с которой я сталкиваюсь, заключается в том, что при попытке перейти к форме / индексу я получаю «Ссылка на объект не установлена на экземпляр объекта». на код позади дома / 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>