【问题标题】:Specify paths to actions in aspx pages MVC在 aspx 页面 MVC 中指定操作的路径
【发布时间】:2010-12-05 19:24:04
【问题描述】:

我正在开发 ASP.NET MVC 应用程序。在我的母版页上,我有一个表单需要提交给另一个操作。下面是相关代码:

<form id="form1" action="/Stock/PerformSearch" method="post" runat="server">
//some other stuff          
</form>

如您所见,当我提交表单时,我想转到“Stock”控制器中的“PerformSearch”操作。这在我的本地机器托管上运行良好。但是当我尝试在服务器上发布站点时,MVC 不再识别此路径。我的问题是我应该如何在 aspx 页面中指定操作的路径,以便它可以在本地和实时工作。我知道我可以使用“使用 Html.BeginForm”,这将解决问题,但我真的不想出于其他原因使用它,而且,我总是需要在许多其他标签中指定操作路径表单标签。

顺便把路径改成“http://cse454db.cs.washington.edu/BestBet/Stock/PerformSearch”

将使它在服务器上运行,因为给定的路径是应用程序所在的确切路径(包括虚拟目录),但我知道这不是完美的解决方案,因为我必须不断地来回更改路径每当在本地或现场运行时。此外,我在指定 javascript 文件中的操作路径时也遇到了同样的问题。我知道应该有一个简单的解决方案,但我一直在寻找并且找不到任何东西,所以任何帮助将不胜感激。非常感谢,

【问题讨论】:

    标签: asp.net-mvc path action


    【解决方案1】:

    我认为您混淆了 ASP.NET 和 ASP.NET MVC。您应该使用 HTML 帮助程序,并且永远不要在 ASP.NET MVC 视图中放置 runat="server" 标记。所以您的表单可能如下所示:

    <% using (Html.BeginForm("PerformSearch", "Stock")) { %>
        //some other stuff
    <% } %>
    

    这将负责生成正确的表单标签。

    【讨论】:

    • JavaScript 文件中的路径怎么样?如何指定路径??
    • 这取决于您所谈论的路径以及您如何在 javascript 中处理它们。
    • 我说的是 ajax 调用,你放在“url:”字段中的路径
    • 视情况而定。如果您在页面中使用链接Html.ActionLink 将生成正确的url,您可以使用jquery 逐步增强这些链接并对其进行ajaxify:$('a#someLink').click(function() { $.get(this.href, function(result) { }); return false; });。请注意我是如何使用链接 href 来执行我的 ajax 调用的。在这种情况下,您不需要在 javascript 文件中硬编码 url。表格也是如此。如果您没有相应的链接,您始终可以生成一个全局 javascript 变量:var url = '&lt;%= Url.Action("foo") %&gt;';,您将在 js 文件中使用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 2012-04-27
    • 1970-01-01
    相关资源
    最近更新 更多