In this video we will discuss, customizing the auto-generated edit view. Please watch Part 27, before proceeding.
If you want "Select Department" as the first item in the "Department" dropdownlist on "Edit" view, then,
REPLACE THE FOLLOWING LINE
@Html.DropDownList("DepartmentId", String.Empty)
WITH
@Html.DropDownList("DepartmentId", "Select Department")
Notice that, a textbox is used for gender. It is ideal to have a dropdownlist for gender rather than a textbox. To achieve this, make the following changes to "Edit.cshtml" view.
REPLACE THE FOLLOWING CODE
@Html.EditorFor(model =] model.Gender)
WITH
@Html.DropDownList("Gender", new List[SelectListItem] { new SelectListItem { Text = "Male", Value="Male" }, new SelectListItem { Text = "Female", Value="Female" } }, "Select Gender")
Let's make "Name" non-editable. To achieve this
CHANGE THE FOLLOWING CODE IN EDIT.CSHTML
@Html.EditorFor(model =] model.Name)
TO
@Html.DisplayFor(model =] model.Name)
@Html.HiddenFor(model =] model.Name)
At this point, we will still be able to change "Name" property of the employee, using tools like fiddler. We discussed this in Part 19 of this video series. There are several ways to prevent "Name" property from being updated.
1. Use UpdateModel() function and pass include and exclude list as a parmeter - Discussed in Part 20
2. Use Bind attribute - Discussed in Part 21
3. Use interfaces - Discussed in Part 22
Now, let's discuss using BIND attribute to prevent updating "Name" property using tools like fiddler. Along the way, I will demonstrate adding model validation errors dynamically.
Change the implementation of "Edit" controller action method, that responds to [HttpPost] request as shown below
[HttpPost]
public ActionResult Edit([Bind(Exclude="Name")] Employee employee)
{ Employee employeeFromDB = db.Employees.Single(x =] x.EmployeeId == employee.EmployeeId); employeeFromDB.EmployeeId = employee.EmployeeId; employeeFromDB.Gender = employee.Gender; employeeFromDB.City = employee.City; employeeFromDB.DepartmentId = employee.DepartmentId; employee.Name = employeeFromDB.Name; if (ModelState.IsValid) { db.ObjectStateManager.ChangeObjectState(employeeFromDB, EntityState.Modified); db.SaveChanges(); return RedirectToAction("Index"); } ViewBag.DepartmentId = new SelectList(db.Departments, "Id", "Name", employee.DepartmentId); return View(employee);
}
Please note that, we have excluded "Name" property from model binding using "Bind" attribute. Even without BIND attribute, users will not be able to change the "NAME" of the employee, as we are copying only the required properties(Excluding NAME property) from "employee" object to "employeeFromDB" which in turn is persisted to the database. Since, I want to demonstrate adding model validation errors dynamically, let the attribute be there.
At this point if we run the application and click on "Save" button on "Edit" view, we get a validation error stating - The Name field is required. This is because "Name" property is decorated with [Required] attribute in "Employee.cs" file. To prevent the validation error, remove the [Required] attribute.
The problem with this change is that, "Name" field on "Create" view is no longer mandatory. This means we will now be able to create a new employee, without NAME. To fix the "Create" view, let's add model validation errors dynamically. Change the implementation of "Create" controller action method that responds to [HttpPost] request as shown below.
[HttpPost]
public ActionResult Create(Employee employee)
{ if (string.IsNullOrEmpty(employee.Name)) { ModelState.AddModelError("Name", "The Name field is required."); } if (ModelState.IsValid) { db.Employees.AddObject(employee); db.SaveChanges(); return RedirectToAction("Index"); } ViewBag.DepartmentId = new SelectList(db.Departments, "Id", "Name", employee.DepartmentId); return View(employee);
}
Text version of the video
http://csharp-video-tutorials.blogspo...
Slides
http://csharp-video-tutorials.blogspo...
All ASP .NET MVC Text Articles
http://csharp-video-tutorials.blogspo...
All ASP .NET MVC Slides
http://csharp-video-tutorials.blogspo...
All Dot Net and SQL Server Tutorials in English
https://www.youtube.com/user/kudvenka...
All Dot Net and SQL Server Tutorials in Arabic
https://www.youtube.com/c/KudvenkatAr...
asp.net core docker Part 28 Customizing the autogenerated edit view | |
| 209 Likes | 209 Dislikes |
| 104,624 views views | 524K followers |
| Education | Upload TimePublished on 30 May 2013 |
Related keywords
wcf vs web api,ado.net core,sql server management studio,webkinz,webadvisor,craigslist nj,wcf one piece,asp.net core 3,ajax players,weber grill parts,webtoon,tutorials by hugo,csharp corner,mvc design pattern,asp.net machine account,servers for minecraft,asp.net core dependency injection,ado.net tutorial,customize vans,model t,entity framework with oracle,model s,customize windows 10,services angular,ajax ontario,controller spring,asp.net mvc tutorial,asp.net cos'è,csharp assembly,customize select css,entity framework c#,tutorialspoint python,sql join,services briefcase,asp.net core web api,ajax jquery,wccftech,craigslist ny,customizergod,asp.net zero,customize django admin,csharp foreach,server memes,sql date format,services online,chase,controller pioneer,model cars,controller php,customized moon lamp,serverless architecture,customize and control google chrome,server resume,wcf c#,server books,tutorialspoint javascript,mvcc connect,ado.net mysql,entity framework core code first,services technologies gps,controller pak n64,customize your search widget,ajax deadpool,server jobs,modeling agencies,model x,cvs,website,model y,mvc tutorial,costco hours,wcf service application,controlleradvice,controller angularjs,controller ableton,tutorialspoint spring,serverless,wcf soap,contrôleur dj,wcf cat,wcf test client,cool math games,model o mouse,entity framework core,services & training hse colombia sas,servicestack,citibank,asp.net core identity,sql union,ajax parking,sql database,asp.net core logging,mvconnect,asp.net guida,cunyfirst,wcf nba,csharp download,wcfi foundation,csharp online,wcf authentication,model s tesla,tutorials near me,http://asp.net,server 2019,ado.net descargar,web of dreams,chernobyl,serverminer,ajax cleaner,model t ford,entity framework update,ado.net visual studio 2019,webassign,ado.net vs entity framework,ado.net visual studio 2017,csharp list,sql like,customize bootstrap 4,asp.net mvc,asp.net core tutorial,sqlite,wcfm,ajax roster,mvc architecture,http://ado.net,modelo negra,customize bootstrap,asp.net core mvc,ajax soccer,server hosting,controller ps4,wcfi,customize discover,ajax dish soap,controller ps4 pc,capital one,server rack,tutorialspoint html,csharp interface,entity framework 6,craigslist,webroot,tutorialspoint reactjs,ajax request,wcf dragon ball,asp.net core 2.2,tutorialspoint python 3,sql developer,webster,services transmission company sas,customize cursor,sql group by,asp.net core signalr,services manager,mvc framework,ajax paving,mvc near me,customize-car,entity framework database first,entity framework mysql,tutorialspoint spring boot,entity framework core mysql,mvc map,csharp online compiler,asp.net download,sql between,modeling clay,ado.net c# pdf,wcf 2019 nba,services tag dell,entity framework core database first,csharp switch,ado.net ventajas y desventajas,csharpstar,wcf tutorial,entity framework many to many,modeling,tutorialspoint,controller for all,controller pro switch,ajax meaning,customize adidas,csharp-video-tutorials.blogspot,tutorials dojo,csharp string format,central park 5,ado.net c#,asp.net core github,controller chaos,server status,ajax fc,server jobs nyc,asp.net core swagger,sql formatter,credit karma,services group,server error in '/' application,services windows,asp.net core 3.0,http://controller.access.network,sql injection,wcf ria services,tutorialspoint c#,calculator,ado.net entity data model,sql insert,tutorialspoint tableau,services google play apk,model engine kits,sqlyog,asp.net core 3 release date,sql server,server job description,tutorials by a,servicenow,entity framework tutorial,webcam,mvc hours,webmd symptom,controllership,csharp array,csharp enum,ajax call,asp.net core 2. guida completa per lo sviluppatore,asp.net core,server pro,customized,customized companion,controller firmware revision 2.10.00 embedded media manager failed media attach,server status ffxiv,model x tesla,customized solutions logistics,webcrims,cheap flights,asp.net core hosting,services sas,customizer,model a ford,modells,tutorialspoint java,tutorialspoint java compiler,webmd,csharp to json,college football,ado.net dataset,csharp dictionary,cnn,website builder,tutorialspoint sql,customize nike,asp.net web api,server side rendering,weber grills,sql server 2017,mvc nj,tutorialspoint spark,ado.net oracle,asp.net core download,csharp to vb.net,entity framework core nuget,entity framework core postgresql,webster bank,webstaurant,tutorialsystems,ajax post,services fms publish announcement,services.msc no abre,modelo abv,ajax jersey,csharp operator,asp.net core razor pages,server duties,asp.net core environment variables,csharp random,century 21,controller midi,entity framework core oracle,services consultores,services consulting,mvcsd,mvcsc,services.msc,ado.net pdf,asp.net core configuration,ajax marvel,sql update,asp.net tutorial,mvc medical,ado.net entity data model visual studio 2019,wcfs international curriculum,mvc2,ado.net entity data model visual studio 2017,controller switch,chase online,wcf api,customized products,entity framework include,costco,server jobs near me,webex,sql meaning,sql tutorial,entity framework join,sql commands,controller area network,ado.net entity framework,ajax tavern,controller symfony,tutorialsteacher,ajax javascript,services desk,entity framework postgresql,model 3,ajax greek,csharp tutorial,mvc pattern,ado.net sql server,ado.net connection,asp.net identity,mvcu,modelo beer,asp.net core middleware,entity framework code first,modelo especial,wcf web service,mvc webadvisor,web store,mvcc,webmail,mvci,mvctc,entity framework migrations,
Không có nhận xét nào:
Đăng nhận xét