単純なMVC(RC1)アプリをセットアップしましたが、奇妙な動作が見られます。[ホーム/インデックス]ページには、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にはコードがありません。これも、スタブだけです。
私が見ている問題は、フォーム/インデックスに移動しようとすると、「オブジェクト参照がオブジェクトのインスタンスに設定されていない」というメッセージが表示されることです。Home/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>