• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1608
  • Last Modified:

ASP.Net MVC 4 C# -- scaffolding template, last modified date ?

How can I change below #8 to automatically populate the POdetail database columns (attached) ?

I don't want to hand code CreatedBy, LastModifiedBy, CreateDate, ModifiedDate each time I add a new table via the below like http://stackoverflow.com/questions/10935803/successful-model-editing-without-a-bunch-of-hidden-fields talks about.
----------------------------------------------------------------------------------
Steps
 1. create new APP
 2. RMB on Models FOLDER, Add, ADO.NET Entity Data Model
      ** Server = DBTEST
      ** Database = MVC_test (make sure table has "PK=ID" so Edit, Details, Delete work
 3. REBUILD
 4. RMB on Controllers FOLDER, Add, Controller, Default1Controller
      ** Template = MVC with read/write actions and views, using Entity Framework
      ** Model Class = Table6 (MvcApplication14.Models)
      ** Data Context Class = MVC_testEntities (MvcApplication14.Models)
 5. edit /Views/Shared/_Layout.cshtml --> <li>@Html.ActionLink("Test Text", "Index", "Default1")</li>
 6. change /Filters/InitializeSimpleMembershipAttribute.cs & Web.config to use ASP.net MVC 4 "SimpleMembership"
 7. run APP, login, click "Test Text", click "Create New", save
 8. WORKS, but displays CreatedBy, LastModifiedBy, CreateDate, ModifiedDate as editable textboxes and does not enter default values
      ** CreatedBy, LastModifiedBy, CreateDate, ModifiedDate need to automatically populate as HIDDEN fields
0
finance_teacher
Asked:
finance_teacher
  • 3
  • 2
1 Solution
 
PaulHewsCommented:
This is probably a good case of where you should use a viewmodel.  The viewmodel class will have the needed fields, but not the createdby, lastmodified, etc.  Thus you will avoid sending them to the client at all.

While you could use the domain class as the model and just omit the "invisible" fields from the view, you would be vulnerable to binding attacks, where anyone could inject whatever value they wanted into the supposedly invisible fields.

While you might not want to hand edit fields, views, etc. you are going to find out that it is generally a necessity.  The scaffolding is rudimentary at best, unless you plan to write your own scaffolding code.
0
 
finance_teacherAuthor Commented:
Can you provide some URL examples of the createdby, lastmodified, etc ?
0
 
PaulHewsCommented:
I'm not really clear on what you need.
0
 
finance_teacherAuthor Commented:
Just some website examples showing a examples of the createdby, lastmodified, etc in ViewModel/etc like you talked about.
0
 
PaulHewsCommented:
The point is that createdby, lastmodified, is not in the viewmodel, but in the Entity Framework model.  Any example of viewmodel will illustrate this concept.  This was covered in:

http://lostechies.com/jimmybogard/2009/06/30/how-we-do-mvc-view-models/

The scaffolding then will not include those fields for the view.  You still have to write code to handle the fields when you do the database work, but that's not really avoidable.
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now