Best Practices Concerning View Model And Updates With Subset Of Fields

Jan 17, 2010

By picking MVC for developing our new site, I find myself in the midst of "best practices" being developed around me in apparent real time. Two weeks ago, NerdDinner was my guide but with the development of MVC 2, even it seems outdated. It's an thrilling experience and I feel privileged to be in close contact with intelligent programmers daily. Right now I've stumbled upon an issue I can't seem to get a straight answer on - from all the blogs anyway - and I'd like to get some insight from the community. It's about Editing (read: Edit action). The bulk of material out there, tutorials and blogs, deal with creating and view the model.

So while this question may not spell out a question, I hope to get some discussion going, contributing to my decision about the path of development I'm to take. My model represents a user with several fields like name, address and email. All the names, in fact, on field each for first name, last name and middle name. The Details view displays all these fields but you can change only one set of fields at a time, for instance, your names. The user expands a form while the other fields are still visible above and below. So the form that is posted back contains a subset of the fields representing the model. While this is appealing to us and our layout concerns, for various reasons, it is to be shunned by serious MVC-developers.

I've been reading about some patterns and best practices and it seems that this is not in key with the paradigm of viewmodel == view. Or have I got it wrong? Anyway, NerdDinner dictates using FormCollection och UpdateModel. All the null fields are happily ignored. Since then, the MVC-community has abandoned this approach to such a degree that a bug in MVC 2 was not discovered. UpdateModel does not work without a complete model in your formcollection. The view model pattern receiving most praise seems to be Dedicated view model that contains a custom view model entity and is the only one that my design issue could be made compatible with.

It entails a tedious amount of mapping, albeit lightened by the use of AutoMapper and the ideas of Jimmy Bogard, that may or may not be worthwhile. He also proposes a 1:1 relationship between view and view model. In keeping with these design paradigms, I am to create a view and associated view for each of my expanding sets of fields. The view models would each be nearly identical, differing only in the fields which are read-only, the views also containing much repeated markup. This seems absurd to me. In future I may want to be able to display two, more or all sets of fields open simultaneously.

View 5 Replies


Similar Messages:

MVC :: Query String Parameters And View Model Fields?

Feb 15, 2010

i just noticed that if my controller has a parameter with a name that matches the name of a field in my view model, and the view emits the value of the model's field, the value emitted is that passed in the query string, not the one set by the controller. is this by design?

here is what i mean:

my view model:

public class MyViewModel
{
int id;
string name; [code]....

sending a request to "create?id=1234" emits "1234" in the hidden field instead of "1".

View 5 Replies

Best Practices For Using MVC With A Dictionary-like Model?

Feb 11, 2011

I'm about to begin an ASP.NET MVC project and I'm not sure how to approach an aspect of the design. Basically, there is a user site and an admin site. In the admin sites, administartors design a form and send an e-mail link out to a handful of people. When the users click on the link, they are sent to the form.

Essentially what I'm wondering is what are the best practices when the model resembles looks more like a dictionary than a table?

In other words, instead of:

CREATE TABLE FormResponse (ResponseId, FormId, UserId, FirstName, LastName, BirthDay, Comments)

...containing 1 row per complete response

It's more like:

CREATE TABLE FormResponse (ResponseId, FormId, UserId, QuestionId, Value)

...containing 4 rows. 1 for the FirstName, 1 for the LastName, 1 for the BirthDay, and 1 for Comments.

View 2 Replies

MVC :: Keep Values Of Model's Unused Members During Updates?

Apr 2, 2010

suppose our model has a property named "CreatedByUserId" that keeps the creator's user id

when we want to update our model, there are no need to display this field, but we should keep it's value during the update.

so, if i don't place any edit field for this property on the view, the model wouldn't have any value for CreatedByUserId property when returns to controller

to solve this, i :

1.place a hidden input in the view for these fields (which is vulnerable)

or

2.make a Get call to db and get the original CreatedByUserId value on each update (which causes additional round trips to db)

isn't there any better way to do this ?

View 6 Replies

Model View Control Versu Model View Presenter

Jun 2, 2010

I have been reading about different model for development

model view control mvc

model view presenter MVP

Model view view model MVVM

i belive MVC has two big Advantage over webform 1) TDD 2) More control on HTML

MVP is bit variation in mvc model. rapid development as well as 1) TDD 2) More control on HTML (correct me if i m wrong) see the below link

[URL]

View 7 Replies

Should Data Annotations Be On The Model Or The View Model

Dec 15, 2010

I've been used to decorating data model classes with data annotation attributes, but the purist in me baulks slightly at including purely presentational attributes such as display format here. I am, however, quite happy to keep validation centric attributes here. One good reason I have to continue keeping all annotations etc. in the data model is that my view model aggregates data model classes, e.g.

my ViewModelBase.DetailItem<TEntity> property in the view model is just a reference to an entity class in my data model. If I wanted to move presentational annotations to the view model, I would have to quite radically revise my design to one where I duplicate data model properties in my view model and use an object mapping tool to populate view model objects based on data model objects.

[code]....

View 2 Replies

MVC :: View Model To Convert To Domain Model?

May 4, 2010

Say I got a domain model as follows: (and my repository expect an instance of this object)

[Code]....

And a view model (which my views are based on)

[Code]....

At the moment I got it like this and have my controller action manually create a new Person object from the PersonModel object before passing it on to the repository, which does not feel right.

So I tried to have PersonModel inherit from Person and pass that to the repository (also tried casting the PersonModel to a Person object first), but that don't work out.

What's the right way to have PersonModel automatically cast to Person? I want to keep this logic as my current structure allow me to keep things really loosely coupled, with the repository layer not having a clue how it's being used.

View 1 Replies

DataSource Controls :: Trigger On View Updates Multiple Table?

Jun 23, 2010

I have Tables customer (Customerid),Product(Productid),Order(orderid). i have created view Customerid,Productid,orderid . is it posssible that if i insert value in view it will get inserted in table itself. can i do it in MS SQL SERVER

View 1 Replies

MVC :: EF Model With Nullable Fields?

Oct 27, 2010

I have a problem with passing a model to a controllerIn my controller I have a HttpPost function that gets a EF model.The problem is that the form does not contains all properties of the EF model.When the function is called that gets this EF model, I get error messge of fields that are not nullable in the EF model.That's because the fields are not in the form, so the not nullable properties gets no value.

View 5 Replies

MVC :: EF - Nullreferenceexception In View. Handle Non Existing Object References In View Model

Mar 15, 2011

I have an entity object as model input in my view. Not sure if it's the best approach, but I use the object references to get values from a related object.Let's say I've got a car entity and a manufacturer entity.Here's how it would look in my view

[Code]....

I've get a nullreferenceexception where the car entitity does not have a reference towards manufacturer. I'd like to output a " " if no manufacturer exists.

View 4 Replies

MVC :: Partial View Not Sending View Model To ActionResult Method?

Dec 29, 2010

've created a Search partial view and it works, except for my view model. What i mean is, the partial view sends a string to my ActionResult Method, but only a string, that is not related to the view model that the partial view is built in. If i tell my ActionResult method to receive the view model in which the partial view is built in, it always tells me that i have null values. Here's my code This is my partial view:

[Code]....

Now here is my Model in my MoviesSearch view model:

[Code]....

Now the actual MoviesSearchViewModel

[Code]....

Inside my Search controller i have this

[Code]....

And then i have this:

View 1 Replies

MVC2 View Model For Multiple View Forms And Data

Aug 26, 2010

one thing that has been puzzling me since learning MVC2 is the following case scenario: I have a view which contains two latest news lists, a login form and a signup form. Every example I found on Views and View Models so far has a one-to-one example such as a simple login form etc. But how do I create a model that provides the properties and validation for a login and signup form and manages the data for the news lists. can I pass multiple models in the strongly typed view? When I created one model the form validation would fail as it expects all fields - login and signup to be filled. I am missing some advanced examples or information.

View 2 Replies

MVC :: A Fields Without A Label Although I ( Model.Article_Type_ID) %>) Exsits

Dec 26, 2010

One of the fields on the view does not have a label when i ran the project, although the other fields got labels and the following HTML code to generate the label already exists:-

<%: Html.LabelFor(model => model.Article_Type_ID) %>

View 2 Replies

MVC :: View And Partial View Sharing The Same ViewData.Model?

May 3, 2010

making my first steps with asp.net mvc and I actually create a (very) small website.I have 1 controller : TasksController1 view : Tasks/Index.aspx1 Partial View : Tasks/AvailableSorting.ascx In my controller I have 2 methods :

[Code]....

In my Tasks/Index.aspx, I add my partial view (<% Html.RenderPartial("AvaliableSorting"); %>)

That sounds simple. But, It just doesn't work : the Index return a list of Task and the parial view (should) return a list of string.The index.aspx works perfectly, but the partial view doesn't get the right model ! he gets the model of the Index page (list of Task).

View 3 Replies

MVC :: How To Pass A Partial View From A Different Model To A View Page

Nov 22, 2010

I would like to add a partial view to my view page

The view page contain a mode name "<IEnumerable<JvTake1.Models.VortN>>

And the partial view contain a model name "<IEnumerable<JvTake1.Models.VideoL>>"
So, theoretically I think they were suppose to work together but no Can any one guide me how to make it happen?

View 2 Replies

MVC :: Passing Model Object To View And From View To Controller?

Aug 6, 2010

I've got problem with my app .

I've got such classes (this is some kind of tree structure):

[Code]....

[Code]....

in Index() action i've got this piece of code

[Code]....

[Code]....

View 2 Replies

MVC :: Render Partial View Itself In View Model Document?

Oct 27, 2010

I am totally a new bee in asp.net mvc. Let me now explain my issue. I have a strongly typed view which inherits from a view model Document. I want to have a partial view in that view itself. My code for this purpose is :

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<HexsolveMVC.Models.Document>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
DetailsDocumentTemplate
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<div>
<div>
<div>
2.4</div>
<div>
Published</div>
<h1>
Document Title: <span>
<%=Model.DocTitle %></span><span><a href="#">[ Edit ]</a></span></h1>
<ul>
<li>
<label>
<span>*</span>Created Date:</label>
<span>
<%= Model.DocCreatedDate%></span></li>
<li>
<label>
Status:</label>
<span>.................................

View 6 Replies

MVC :: JQuery Disabled TextBoxFor Causes Model Fields To Be Null?

Jul 19, 2010

So i'm working on the form that i started MVC with - the problem is that i'm NOT using a ViewModel for the view, its an actual Linq to SQL object. And so far it works fine. This form is a beast and id rather not refactor it to use viewmodels....

My big problem now is that depending some condition, i pretty much set almost everything to disabled when a particular dropdown is selcted (to mimic a deactivated state) - when the user hits submit, the model fields are now null, even tho you can see them filled in (just greyed out and unselectable) and validation refuses them.

Is there anyway around this other than to refactor the Views to use ViewModels (and set different validation rules so submit works)?

View 4 Replies

MVC :: 3 Dataanotation External To The Database Fields In The Model Not Validating?

Mar 20, 2011

How can i make this work like i have 5 fields in my database table . 2) i created a model for validation with datannotation and created the compare password field as well with comparepassword attribute. (now my model has 6 fields including one external field compare password and 5 database fields)3) i created a view with that model.(User)4) now i created a controller as well but the problem arise here that when calling that actionmethod the compiler complains about the external field and tells it cannot find any extension method . how can i create the extension method or solve this error?

[Code]....

View 5 Replies

How To Create A Model Class To Validate The Form Fields

Dec 9, 2010

I am beginner to MVC. I have created a View with dropdownlist, text box and text area. I didn't create a strongly typed view because these fields are not generating from the database. Is this right way of doing it? Do I have to create a 'Model' class and generate a strongly typed view? I am trying to validate(client and server side) these fieds before saving into the database. How to create a Model class for these fields?

Here is my view looks like.

[code]....

View 1 Replies

MVC :: How To Populate Form Fields Without Strongly Typing Model

Sep 28, 2010

I am facing few issues. I am using MVC2.I am developing a form which is being created dynamically based on its layout and all html attributes info stored in DB table. This dynamically generated form stores data(this table have all html field names as columns) in another db table(db is mysql).

I have created ViewModel class in which i get both design table entity objects and data table entity object. I, then, created strongly typed view based on that ViewModel. But the problem is when i rendering html fields using html helpers i.e

TextBox(Model.tblDesign.htmlField_name).it doesnt bind with the columns of Model.tblData whose names are same as of Model.tblDesign.htmlField_name. how can i bind fields of data table?

View 1 Replies

C# - Decorate Model Fields With Metadata From Resource File

Nov 29, 2010

I would like to separate my attribute decoration(3-4 per field) by having them someplace else so that my code looks readable.Also the arguments passed to some attributes should come from a resource file.EG:[Required("Cannot proceed without entering *field_Name*")]

I need just [Required] Possible duplicate of this question(on which i couldn't resist offering a bounty) : Default resource for data annotations.

View 2 Replies

MVC :: Model Validation Happens Automatically With LinqToSql DateTime Fields, But Not Other NOT NULL Fie...

Mar 15, 2010

I'm using MVC 2 with some Models from a LinqToSql project that I built. I see that when I post back to a Controller Action after editing a form that has a DateTime field from the Model, the MVC Html.ValidationMessageFor() helper will nicely display an error beside the Date text box. This seems to happen automatically when the you test ModelState.IsValid() in the Controller Action, as if the MVC model binding automatically knows that the DateTime field cannot be empty.

My question is... I have some other string fields in these LinqToSql generated classes that are Not-Nullable (marked as Not Nullable in Sql Server which passes thourgh to the LinqToSql generated classes), so why doesn't Mr. MVC pick up on those as well and display a "Required" message in the ValidationMessageFor() placeholders I have added for those fields?

Sure, I have successfully added the MetadataType(typeof<t>) buddy classes to cover these Non-nullable string fields, but it sure does seem redundant to add all this metadata in buddy classes when the LinqToSql generated classes already contain enough info that MVC could sniff out. It MVC validation works with DateTime automatically, why not these Not-nullable fields too?

View 4 Replies

MVC :: Model.IsValid Returning False - Certain Fields Don't Show Up On The Screen

Feb 24, 2011

Model is coming up as Invalid Scenario is I have a custom ViewModel and certain fields don't show up on the screen (like Id & some computed fields etc..) so when the data gets posted back the Model.IsValid() comes to false Q Do I have to pre init these fields when I do create

ActionResult CreateOrder(int customerID)
{
var order=new OrderViewModel();
//shall I init the fields which are not being keyed in by the user?
}

View 4 Replies

C# - How To Pass Model From A View To A Partial View

May 5, 2010

I have a view that is not strongly typed. However I have in this view a partial view that is strongly typed.How do I do I pass the model to this strongly typed view?I tried something like

public ActionResult Test()
{
MyData = new Data();
MyData.One = 1;
return View("Test",MyData)
}

In my TestView

<% Html.RenderPartial("PartialView",Model); %>

This give me a stackoverflow exception. So I am not sure how to pass it on. Of course I don't want to make the test view strongly typed if possible as what happens if I had like 10 strongly typed partial views in that view I would need like some sort of wrapper.

View 3 Replies







Copyrights 2005-15 www.BigResource.com, All rights reserved