mvc asp.net中的错误404。查看不显示

时间:2015-11-08 15:40:21

标签: c# asp.net asp.net-mvc attributes

我无法创建视图和自己的actionresult。我得到的错误就是这个

  

错误de servidor enlaaplicación'/'。

     

没有se encuentra el recurso。

     

Descripción:HTTP 404. El recursoqueestábuscando(o una de sus   依赖性,seber puede haber quitado,haber cambiado de nombre o no   estar disponible temporalmente。修改ladirecciónURLsiguiente y   asegúresedequeestáescritacorrectamente。

     

DirecciónURL征集:/ Cursos / AgregarAlumno / 2

这是我的观点(我知道它未完成,但我认为这不是问题)

@model LibreriaEntidad.Cursos
@{
    ViewBag.Title = "AgregarAlumnos";
}

<h2>AgregarAlumnos</h2>

@using (Html.BeginForm())
{
    <fieldset>
        <legend>Cursos</legend>

        @*<div class="editor-label">
            @Html.LabelFor(model => model.idCurso)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.idCurso)
            @Html.ValidationMessageFor(model => model.idCurso)
        </div>*@

        <div class="editor-label">
            @Html.LabelFor(model => model.Nombre)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Nombre)
            @Html.ValidationMessageFor(model => model.Nombre)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.idReparticion)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.idReparticion)
            @Html.ValidationMessageFor(model => model.idReparticion)
        </div>

        @*<div class="editor-label">
            @Html.LabelFor(model => model.Presencual)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Presencual)
            @Html.ValidationMessageFor(model => model.Presencual)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Virtual)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Virtual)
            @Html.ValidationMessageFor(model => model.Virtual)
        </div>*@

            <div class="editor-field">
                @Html.DropDownList("idUsuario", ViewBag.Usuarios as SelectList)
            </div>
            <p>
                <input type="submit" value="Save" />
            </p>
</fieldset>

我的控制器在这里采取行动。

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult AgregarAlumnos(int id = 0)
{
    Cursos cursos = db.Cursos.Find(id);
    ViewBag.Usuarios = new SelectList(db.Usuario, "idUsuario", "Nombre");
    return View(cursos);
}

提前致谢

2 个答案:

答案 0 :(得分:0)

您应该从操作中删除 [HttpPost] 属性。

<强>更新

要显示视图,操作必须接受GET请求。您应该使用两种不同的操作来显示视图和提交表单。

答案 1 :(得分:0)

您需要相应的HttpGet方法,因为您当前的方法只接受HttpPost请求。添加以下内容:

[HttpPost]
public ActionResult AgregarAlumnos(int id = 0)
{
    Cursos cursos = db.Cursos.Find(id);
    ViewBag.Usuarios = new SelectList(db.Usuario, "idUsuario", "Nombre");
    return View(cursos);
}

HttpGet: - 每当任何View加载第一次HttpGet方法执行时。这意味着首次请求Asp.Net MVC HttpGet方法中的任何URL执行。这意味着如果任何URL通过URL接收输入,我们可以通过HttpGet方法处理输入。

HttpPost: - HttpPost方法在您单击MVC表单中的“提交”按钮后执行。这意味着我们可以使用HttpPost方法处理表单数据。