ASP.Net 正在调试而不是在 IIS 上
ASP.Net working on debug not on IIS
我有一个名为 Clients 的控制器,我将 CRUD 操作作为操作 [HttpPost]。添加、更新、删除。所有这些操作都使用 RedirectionToAction。如下图所示,我已经尝试了 post 和 get
唯一的问题是我没有使用 Begin 表单,而是使用如下所示的旧方法。
问题是,当我使用 Visual Studio 中的调试程序对其进行测试时,它可以正常工作。但是当我将它部署到实际服务器 (IIS) 并对其进行测试时,我遇到了 404 错误。
最初我没有为每个 Acton 创建一个视图,但即使我尝试为每个 Acton 创建一个视图它仍然不起作用。
我已经在我的家庭虚拟服务器上部署了相同的代码,并且可以正常工作。看起来问题出在我们的工作服务器上。有什么原因造成的吗?
sHTML.push("<form name='frmUpdateClient' method='POST' action='/Clients/Update'>");
这里您似乎已将 <form>
元素的操作参数硬编码为 /Clients/Update
。但也许在您的生产服务器上,您已将 ASP.NET MVC 应用程序托管在虚拟目录中。因此,您可能需要考虑到这一点并生成正确的 url:
action='/VirtualDirectoryName/Clients/Update'
我有一个名为 Clients 的控制器,我将 CRUD 操作作为操作 [HttpPost]。添加、更新、删除。所有这些操作都使用 RedirectionToAction。如下图所示,我已经尝试了 post 和 get
唯一的问题是我没有使用 Begin 表单,而是使用如下所示的旧方法。
问题是,当我使用 Visual Studio 中的调试程序对其进行测试时,它可以正常工作。但是当我将它部署到实际服务器 (IIS) 并对其进行测试时,我遇到了 404 错误。
最初我没有为每个 Acton 创建一个视图,但即使我尝试为每个 Acton 创建一个视图它仍然不起作用。
我已经在我的家庭虚拟服务器上部署了相同的代码,并且可以正常工作。看起来问题出在我们的工作服务器上。有什么原因造成的吗?
sHTML.push("<form name='frmUpdateClient' method='POST' action='/Clients/Update'>");
这里您似乎已将 <form>
元素的操作参数硬编码为 /Clients/Update
。但也许在您的生产服务器上,您已将 ASP.NET MVC 应用程序托管在虚拟目录中。因此,您可能需要考虑到这一点并生成正确的 url:
action='/VirtualDirectoryName/Clients/Update'