【问题标题】:MVC invoking default page when opening a different page?打开不同页面时MVC调用默认页面?
【发布时间】:2009-01-30 14:56:11
【问题描述】:

我设置了一个简单的 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 后面没有代码 - 再次,只是一个存根。

我看到的问题是,当我尝试导航到表单/索引时,我得到“对象引用未设置为对象的实例”。在 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>

【问题讨论】:

  • 可以包含整个Form/Index.aspx 吗?我知道它是“空的”,但我想看看标题。
  • 已添加到问题中。技术上不是“空的”,但我没有对输入做任何事情。

标签: asp.net-mvc html-helper


【解决方案1】:

这样对吗?

Inherits="ProviderFeedback.Index"

不应该是Form.Index吗?

【讨论】:

  • 这就是VS放在那里的东西。如果我尝试更改它,我会在 ProviderFeedback 命名空间中遇到冲突。我不能在不同的文件夹中拥有相同名称的视图吗?从类视图中,似乎所有视图都分组在项目命名空间下,与文件夹无关。
  • 如果视图位于不同的命名空间中,您可以在不同的文件夹中拥有相同名称的视图。默认情况下,命名空间 = 文件夹名称 + 。 + 查看名称。顺便说一句,这确实解释了您的问题。
  • 奇怪的是 VS 不会自动处理这个问题 - 它只使用项目名称和视图名称。我最初确实使用测试版创建了这个项目,所以我想知道两者之间是否发生了一些有趣的事情。我会尝试一个新版本,看看会发生什么。感谢您的帮助。
猜你喜欢
  • 2016-05-17
  • 2017-10-11
  • 1970-01-01
  • 2011-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多