Nie działająca Aplikacja MVC

0

Witam,mam pewien problem z kodem Aplikacji MVC,przepisałem kod z książki z której się uczę,ale po uruchomieniu aplikacji pierwszy widok działa doskonale,lecz po wciśnięciu Hiperłącza odsyłającego do kreatora Pracownika otrzymuje błąd 404.

Poniżej zamieszczam kod

ListaPracownikow.cshtml @model IEnumerable<kadry.models.pracownik>

@{
ViewBag.Title = "ListaPracownikow";
Layout = "~/Views/Shared/_Layout.cshtml";
}

Lista Pracownikow

@if (Model.Count() == 0) {

Brak Pracowników

} else { Imię </th> Nazwisko </th> Wiek </th> Stanowisko </th> Data zatrudnienia </th> </tr> @foreach (var item in Model) { @Html.Encode(item.Imie) </td> @Html.Encode(item.Nazwisko) </td> @Html.Encode(item.Wiek) </td> @Html.Encode(item.Stanowisko) </td> @Html.Encode(item.DataZatrudnienia) </td> </tr> } </table> }

@Html.ActionLink("Utwórz nowego pracownika","UtworzPracownika")

PracownicyController.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using Kadry.Models;

namespace Kadry.Controllers
{
public class PracownicyController : Controller
{
static List<Pracownik> listaPracownikow = new List<Pracownik>();
public ActionResult Index()
{
return View();
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult UtworzPracownika(Pracownik pracownik)
{
if (ModelState.IsValid)
{
listaPracownikow.Add(pracownik);
return View("ListaPracownikow", listaPracownikow);
}
return View(pracownik);
}
public ActionResult ListaPracownikow()
{
return View(listaPracownikow);
}

}

}
UtworzPracownika.cshtml
@model Kadry.Models.Pracownik

@{
ViewBag.Title = "Kreator Nowego Pracownika";
Layout = "~/Views/Shared/_Layout.cshtml";
}

Tworzenie Pracownika

<script src="@Url.Content(" ~/scripts/jquery.validate.min.js")"type="text/javascript"></script> <script src="@Url.Content(" ~/scripts/jquery.validate.unobtrusive.min.js")"type="text/javascript"></script>

@using (Html.BeginForm())
{
@html.ValidationSummary("Utworzenie Pracownika nie powiodło się.Popraw poniższe błędy i próbuj dalej");
<fieldset>
<legend>Pracownik</legend>


@html.LabelFor(model => model.Imie)


@html.EditorFor(model => model.Imie)
@html.ValidationMessageFor(model => model.Imie)


@html.LabelFor(model => model.Nazwisko)


@html.EditorFor(model => model.Nazwisko)
@html.ValidationMessageFor(model => model.Nazwisko)


@html.LabelFor(model => model.Wiek)


@html.EditorFor(model => model.Wiek)
@html.ValidationMessageFor(model => model.Wiek)


@html.LabelFor(model => model.Stanowisko)


@html.EditorFor(model => model.Stanowisko)
@html.ValidationMessageFor(model => model.Stanowisko)


@html.LabelFor(model => model.DataZatrudnienia)


@html.EditorFor(model => model.DataZatrudnienia)
@html.ValidationMessageFor(model => model.DataZatrudnienia)


<input type="submit" value="Utwórz" />


</fieldset>
}</p>
@Html.ActionLink("Powrót do listy pracowników", "ListaPracowników")
layout.cshtml @model Kadry.Models.Pracownik

@{
ViewBag.Title = "Kreator Nowego Pracownika";
Layout = "~/Views/Shared/_Layout.cshtml";
}

Tworzenie Pracownika

<script src="@Url.Content(" ~/scripts/jquery.validate.min.js")"type="text/javascript"></script> <script src="@Url.Content(" ~/scripts/jquery.validate.unobtrusive.min.js")"type="text/javascript"></script>

@using (Html.BeginForm())
{
@html.ValidationSummary("Utworzenie Pracownika nie powiodło się.Popraw poniższe błędy i próbuj dalej");
<fieldset>
<legend>Pracownik</legend>


@html.LabelFor(model => model.Imie)


@html.EditorFor(model => model.Imie)
@html.ValidationMessageFor(model => model.Imie)


@html.LabelFor(model => model.Nazwisko)


@html.EditorFor(model => model.Nazwisko)
@html.ValidationMessageFor(model => model.Nazwisko)


@html.LabelFor(model => model.Wiek)


@html.EditorFor(model => model.Wiek)
@html.ValidationMessageFor(model => model.Wiek)


@html.LabelFor(model => model.Stanowisko)


@html.EditorFor(model => model.Stanowisko)
@html.ValidationMessageFor(model => model.Stanowisko)


@html.LabelFor(model => model.DataZatrudnienia)


@html.EditorFor(model => model.DataZatrudnienia)
@html.ValidationMessageFor(model => model.DataZatrudnienia)


<input type="submit" value="Utwórz" />


</fieldset>
}</p>
@Html.ActionLink("Powrót do listy pracowników", "ListaPracowników")

PracownicyModels.cs
@model Kadry.Models.Pracownik

@{
ViewBag.Title = "Kreator Nowego Pracownika";
Layout = "~/Views/Shared/_Layout.cshtml";
}

Tworzenie Pracownika

<script src="@Url.Content(" ~/scripts/jquery.validate.min.js")"type="text/javascript"></script> <script src="@Url.Content(" ~/scripts/jquery.validate.unobtrusive.min.js")"type="text/javascript"></script>

@using (Html.BeginForm())
{
@html.ValidationSummary("Utworzenie Pracownika nie powiodło się.Popraw poniższe błędy i próbuj dalej");
<fieldset>
<legend>Pracownik</legend>


@html.LabelFor(model => model.Imie)


@html.EditorFor(model => model.Imie)
@html.ValidationMessageFor(model => model.Imie)


@html.LabelFor(model => model.Nazwisko)


@html.EditorFor(model => model.Nazwisko)
@html.ValidationMessageFor(model => model.Nazwisko)


@html.LabelFor(model => model.Wiek)


@html.EditorFor(model => model.Wiek)
@html.ValidationMessageFor(model => model.Wiek)


@html.LabelFor(model => model.Stanowisko)


@html.EditorFor(model => model.Stanowisko)
@html.ValidationMessageFor(model => model.Stanowisko)


@html.LabelFor(model => model.DataZatrudnienia)


@html.EditorFor(model => model.DataZatrudnienia)
@html.ValidationMessageFor(model => model.DataZatrudnienia)


<input type="submit" value="Utwórz" />


</fieldset>
}</p>
@Html.ActionLink("Powrót do listy pracowników", "ListaPracowników")

Jeśli zagraciłem tutaj cały temat to Przepraszam najmocniej,jestem tutaj nowy(tak wiem,że to nie usprawiedliwienie)

0

jaka to książka?

funkcja:

 [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult UtworzPracownika(Pracownik pracownik)
        { 

jest "typu" POST czyli musisz do niej coś wysłać z formularza, a Ty ją po prostu wywołujesz. tak jak byś miał funkcję:

 
public int Suma(int a, int b) {...}

i chciał ją wywołać bez parametrów żadnych.

0

To jak radzisz mi tam zmodyfikować tą metodę?
W książce jest dokładnie tak napisane jak ja ci wkleiłem i autorowi niby działa.

1

Do PracownicyController, dodaj to:

  public ActionResult UtworzPracownika()
        {
            return this.View();
        } 
0
ne0 napisał(a):

Do PracownicyController, dodaj to:

  public ActionResult UtworzPracownika()
        {
            return this.View();
        } 

Nie wiem jak ci dziękować!!!
Bardzo bardzo ci dziękuje!

1 użytkowników online, w tym zalogowanych: 0, gości: 1