Je crée un formulaire simple pour télécharger un fichier (qui peut être donné un nom convivial).Obtenir 404 sur un contrôleur simple
Je suis allé sur ce code à maintes reprises, mais toujours obtenir un 404 lorsque le formulaire écrit dans/MyEntities/Add (c'est une adresse post-only exprès).
Toutes les pensées seraient très appréciées - Je ne peux tout simplement pas voir ce que j'ai fait de mal.
Le contrôleur:
public class MyEntitiesController : Controller
{
private DataFilesComparisonRepository repository = new DataFilesComparisonRepository();
public ActionResult Index()
{
List<MyEntitiesDataset> datasets = repository.GetMyEntitiesDatasets();
return View(datasets);
}
[HttpPost]
public ActionResult Add(HttpPostedFileBase postedFile, string friendlyName)
{
repository.AddMyEntities(friendlyName, postedFile.FileName, postedFile.InputStream);
return RedirectToAction("Index");
}
}
Et la vue:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<List<MyEntitiesDataset>>" %>
<%@ Import Namespace="DataFilesComparison.Models" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
The Title
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<% Html.BeginForm("Add", "MyEntities", FormMethod.Post, new { enctype = "multipart/form-data" }); %>
<p>
<input type="file" name="postedFile" />
<label for="friendlyName">Friendly Name:</label>
<%= Html.TextBox("friendlyName") %>
<input type="submit" value="Add" />
</p>
<% Html.EndForm(); %>
<% if (Model == null || Model.Count == 0) { %>
<p>No datasets found.</p>
<% } else { %>
<ul>
<% foreach (MyEntitiesDataset dataset in Model) { %>
<li>
<%= dataset.Name %>
[<%= Html.ActionLink("X", "Delete", new { ID = dataset.ID })%>]
</li>
<% } %>
</ul>
<% } %>
</asp:Content>
Est-ce que/MyEntities/Add existe en tant que fichier? Ou utilisez-vous/Add comme paramètre? Si en tant que paramètre, essayez? Ajouter à la place. – barrycarter
Quelles sont vos routes depuis Global.asax? Avez-vous changé par rapport à la valeur par défaut que cela peut avoir à découvrir je suppose. – Amadiere