C# MVC 4 app one重定向出现HTTP错误404.0-未找到
我有一个具有以下文件夹结构的MVC 4应用程序:C# MVC 4 app one重定向出现HTTP错误404.0-未找到,c#,asp.net-mvc-4,C#,Asp.net Mvc 4,我有一个具有以下文件夹结构的MVC 4应用程序: Controllers >Table10Controller.cs Views >Billing >>PercentageInstallmentTable.cshtml >Table10 >>Create.cshtml >>Edit.cshtml >>Details.cshtml >>Delete.cshtml Percentage
Controllers
>Table10Controller.cs
Views
>Billing
>>PercentageInstallmentTable.cshtml
>Table10
>>Create.cshtml
>>Edit.cshtml
>>Details.cshtml
>>Delete.cshtml
PercentageInstallmentTable.cshtml包含以下操作链接
@Html.ActionLink("Create New", "..\\Table10\\Create")
@Html.ActionLink("Edit", "..\\Table10\\Edit", new { id = item.PID })
@Html.ActionLink("Details", "..\\Table10\\Details", new { id = item.PID })
@Html.ActionLink("Delete", "..\\Table10\\Delete", new { id = item.PID })
正确编辑、详细信息和删除所有重定向。出于某种原因,我得到了
HTTP错误404.0-未找到。您正在查找的资源已被删除、名称已更改或暂时不可用
即使文件存在并且与edit/details/delete位于同一文件夹中
我昨天注意到了这个问题,从Table10文件夹中删除Create.cshtml,然后将其放回该文件夹,解决了这个问题。今天这个解决方案不起作用了,我就是无法让它发挥作用。发生了什么事
我将actionlink更改为
@Html.ActionLink("Create New", "Create", "Table10")
这将显示路径localhost:51269/Table10/Create,这是正确的,当我将10换成其他数量的表时,我已经完成了这些工作(即localhost:51269/Table8/Create)。不幸的是,对于表10,我在Create上仍然得到相同的404
如果这有帮助,这里是Table10Controller.cs
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using BillingApp.Models;
namespace BillingApp.Controllers
{
public class Table10Controller : Controller
{
private BillingUIEntities db = new BillingUIEntities();
//
// GET: /Table10/
public ActionResult Index()
{
return View(db.PERCENTAGE_INSTALLMENT_TABLE.ToList());
}
//
// GET: /Table10/Details/5
public ActionResult Details(int id = 0)
{
PERCENTAGE_INSTALLMENT_TABLE percentage_installment_table = db.PERCENTAGE_INSTALLMENT_TABLE.Find(id);
if (percentage_installment_table == null)
{
return HttpNotFound();
}
return View(percentage_installment_table);
}
public ActionResult View(int id = 0)
{
PERCENTAGE_INSTALLMENT_TABLE percentage_installment_table = db.PERCENTAGE_INSTALLMENT_TABLE.Find(id);
if (percentage_installment_table == null)
{
return HttpNotFound();
}
return View(percentage_installment_table);
}
//
// GET: /Table10/Create
public ActionResult Create()
{
return View();
}
//
// POST: /Table10/Create
[HttpPost]
public ActionResult Create(PERCENTAGE_INSTALLMENT_TABLE percentage_installment_table)
{
if (ModelState.IsValid)
{
db.PERCENTAGE_INSTALLMENT_TABLE.Add(percentage_installment_table);
db.SaveChanges();
return RedirectToAction("../Billing/PercentageInstallmentTable");
}
return View(percentage_installment_table);
}
//
// GET: /Table10/Edit/5
public ActionResult Edit(int id = 0)
{
PERCENTAGE_INSTALLMENT_TABLE percentage_installment_table = db.PERCENTAGE_INSTALLMENT_TABLE.Find(id);
if (percentage_installment_table == null)
{
return HttpNotFound();
}
return View(percentage_installment_table);
}
//
// POST: /Table10/Edit/5
[HttpPost]
public ActionResult Edit(PERCENTAGE_INSTALLMENT_TABLE percentage_installment_table)
{
if (ModelState.IsValid)
{
db.Entry(percentage_installment_table).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("../Billing/PercentageInstallmentTable");
}
return View(percentage_installment_table);
}
//
// GET: /Table10/Delete/5
public ActionResult Delete(int id = 0)
{
PERCENTAGE_INSTALLMENT_TABLE percentage_installment_table = db.PERCENTAGE_INSTALLMENT_TABLE.Find(id);
if (percentage_installment_table == null)
{
return HttpNotFound();
}
return View(percentage_installment_table);
}
//
// POST: /Table10/Delete/5
[HttpPost, ActionName("Delete")]
public ActionResult DeleteConfirmed(int id)
{
PERCENTAGE_INSTALLMENT_TABLE percentage_installment_table = db.PERCENTAGE_INSTALLMENT_TABLE.Find(id);
db.PERCENTAGE_INSTALLMENT_TABLE.Remove(percentage_installment_table);
db.SaveChanges();
return RedirectToAction("../Billing/PercentageInstallmentTable");
}
protected override void Dispose(bool disposing)
{
db.Dispose();
base.Dispose(disposing);
}
}
}
更新:我备份了Table10及其内容以及Table10Controller.cs。然后我将它们全部删除,创建了一个新的Table10控制器,选项为“使用实体框架,具有读/写操作和视图的MVC控制器”,因此Table10文件夹将使用新的edit/delete/details/create创建。然后我将控制器和视图的内容复制到新创建的文件中。创建仍然无法查看,但其他所有操作都正常。我只是……不明白
解决了这个问题,我需要更仔细地查看控制器-有一个actionresult视图,我不知道它为什么在那里。把它拿走,一切都好 你想做些奇怪的事。 你在打电话吗
@Html.ActionLink(string label, string actionName)
第二个参数不是操作名称,因为它指向不同的文件夹(看起来像视图的url)
要更正此问题,请执行以下操作:
在Table10控制器中添加以下操作:
创建、详细信息。。。
然后在你看来,你可以打电话
@Html.ActionLink(string label, string controllerName, string actionName)
像这样:
@Html.ActionLink("Create", "Table10", "Create")
@Html.ActionLink("Create", "Table10", "Create", new { Id = item.PID })
或者,如果您需要添加一些参数(如您试图传递给控制器的Id)
像这样:
@Html.ActionLink("Create", "Table10", "Create")
@Html.ActionLink("Create", "Table10", "Create", new { Id = item.PID })
通过这样做,您将调用名为“Table10”的控制器上名为“Create”的操作,该控制器在视图中有一个标签“Create”
生成的HTML将是:
<a href="Table10/Create">Create</a>
您可以在哪里使用“.\x\y\z\view”您是否使用Fiddler查看发布到服务器的内容?我所在的系统没有管理权限,因此无法安装Fiddler。好的,您是否检查了IIS日志以查看404请求?您的Table10Controller.cs看起来像什么?很好,您自己解决了这个问题。你能设置你的答案并选择正确的答案,让其他人知道答案已经解决了吗?谢谢