Test1Controller.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Mvc.Ajax; using System.Net; using Newtonsoft.Json; using System.Threading.Tasks; using System.Text; using System.IO; using System.Net.Http; using System.Net.Http.Headers; using Internkurs1_controller.Models; namespace Internkurs1_controller.Controllers public class Test1Controller : Controller // När detta görs som film startar projektet utan vyer för denna kontroller // Brytpunkter läggs in för att visa hur breakpoints fungerar då man debuggar // GET: Test1 eller Test1/Index public ActionResult Index() // GET: Test1/Index2 // Syftet är att se hur olika url:er leder till olika actions public ActionResult Index2() // GET: Test1/IndexMedEnUser // Syftet är att använda en vymodell User och att använda denna starkt typning i vyn där vymodellen anges med @model public ActionResult SidaMedEnUser() User my_user = new User(); my_user.name = "Rolle"; my_user.id = 1; return View(my_user); // GET: Test1/Index2MedParam eller Test1/Index2MedParam/8 eller Test1/Index2MedParam?id=8 // Syftet är att ta in en parameter via url:en. Det kan ske på två sätt med standardroutingen. // Ett annat syfte är att skicka data med en ViewBag. (Det finns även ViewData) public ActionResult SidaMedParametrar(int? id) if (id == null) ViewBag.något = "Det kom ingen parameter som heter id."; int i = 0; string m = id.tostring() + ", ";
while (i < id) m += "Rolle, " ; i++; ViewBag.något = m; // GET: Test1/Index2MedParam2 eller Test1/Index2MedParam2/8 eller Test1/Index2MedParam2?id=8 // Syftet är att införa en lista och visa @model och @foreach i vyn public ActionResult SidaMedParametrarOchLista(int? id) List<string> m = new List<string>(); if (id == null) m.add("det kom inget id."); int i = 0; m.add(id.tostring()); while (i < id) m.add(",olle"); i++; // GET: Test1/IndexMedUser eller Test1/IndexMedUser/8 eller Test1/IndexMedUser?id=8 // Syftet är att använda en vymodell User och att använda denna starkt typning i vyn där vymodellen anges med @model public ActionResult ListaMedUsers(int? id) List<User> m = new List<User>(); if (id == null) User my_user = new User(); my_user.name = "Rolle"; my_user.id = 1; m.add(my_user); User my_user2 = new User(); my_user2.name = "Kicki"; my_user2.id = Convert.ToInt16(id); m.add(my_user2); //Get // Här gör vi ett formulär public ActionResult NewUser() //Post
//Här tar vi emot en user //och binder data till modellen [HttpPost] [ValidateAntiForgeryToken] public ActionResult NewUser([Bind(Include = "Id,Name")] User user) if (ModelState.IsValid) //fixa kod för att spara en user string s = user.name; int i = user.id; return RedirectToAction("ShowUser",user); //om inte datat passar en user så ladda om formuläret return View(user); public ActionResult ShowUser(Internkurs1_controller.Models.User user) return View(user); public ActionResult TinyMce() Index.cshtml @ ViewBag.Title = "Index"; <h2>index</h2> Index2.cshtml @ ViewBag.Title = "Index2"; <h2>index2</h2> Sidamedenuser.cshtml @model Internkurs1_controller.Models.User @ ViewBag.Title = "ShowUser"; Layout = "~/Views/Shared/_Layout.cshtml"; <div> <h2>showuser</h2> <p>@model.name</p> <p>@model.id</p>
User.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Internkurs1_controller.Models /// <summary> /// En user-klass osm används som en vymodell i detta projekt /// En vymodell används för att stark typning mellan controller och vy /// Den har inga attribut, vilket också är nytt i c# /// </summary> public class User public User() Name = "Default"; Id = -1; public string Name get; set; public int Id get; set; SidaMedParametrar.cshtml @ ViewBag.Title = "SidaMedParametrar"; <h2>sidamedparametrar</h2> @ViewBag.något SidaMedParametrarOchLista.cshtml @model List<string> @ ViewBag.Title = "SidaMedParametrarOchLista"; <h1>sidamedparametrarochlista</h1> <table> @foreach (var item in Model) <tr> <td>@item</td> </tr> </table> @model List<Internkurs1_controller.Models.User> @ ViewBag.Title = "ListaMedUsers";
ListaMedUsers.schtml <h2>listamedusers</h2> <table> @foreach (var item in Model) <tr> <td>@item.name</td> <td>@item.id</td> </tr> </table> <ul> @foreach (var item in Model) for (int i = 0; i < item.id; i++) <li>@html.displayfor(modelitem => item.name)</li> <li>@html.displayfor(modelitem => item.id)</li> </ul> @Html.ActionLink("Start", "Index", "Test1") NewUser.cshtml @model Internkurs1_controller.Models.User @ ViewBag.Title = "NewUser"; @using (Html.BeginForm()) @Html.AntiForgeryToken() <div class="form-horizontal"> <h2>newuser</h2> <hr /> @Html.ValidationSummary(true, "", new @class = "text-danger" ) <div class="form-group"> @Html.LabelFor(model => model.name, htmlattributes: new @class = "control-label col-md-2" ) <div class="col-md-10"> @Html.EditorFor(model => model.name, new htmlattributes = new @class = "form-control" ) @Html.ValidationMessageFor(model => model.name, "", new @class = "text-danger" ) <div class="form-group"> @Html.LabelFor(model => model.id, htmlattributes: new @class = "controllabel col-md-2" ) <div class="col-md-10"> @Html.EditorFor(model => model.id, new htmlattributes = new @class = "form-control" ) @Html.ValidationMessageFor(model => model.id, "", new @class = "text-danger" )
<div class="form-group"> <div class="col-md-offset-2 col-md-10"> <input type="submit" value="spara" class="btn btn-default" /> <div> @Html.ActionLink("Back to List", "Index") @section Scripts @Scripts.Render("~/bundles/jqueryval") ShowUser.cshtml @model Internkurs1_controller.Models.User @ ViewBag.Title = "ShowUser"; Layout = "~/Views/Shared/_Layout.cshtml"; <div> <h2>showuser</h2> <p>@model.name</p> <p>@model.id</p>