MVC :: Scenarios Where Data Validation Is Done In The Viewmodel Not The Model?
Jun 8, 2010
point out an example or tutorial online that shows where data validation is done in the viewmodelas against the model? i saw a number of posts where that method is recommended..i dont really agree with it but i would like to see how it would work out..
View 2 Replies
Similar Messages:
Jan 11, 2011
I have a viewmodel with a property of a model class type. I set some properties in the model class to be able to show it to the user but then when I make a post, the model gets validated. How to overcome this? I don't want to enforce the DataAnnotations contraint in this case....
public class TheViewModel
{
TheModel TheModel { get; set;}
}
[code]...
View 1 Replies
Dec 9, 2010
I use viewModels to communicate between my controller and my view. To get model validation, i use a partial class like this :
[MetadataType(typeof(EvaluationValidation))]
public partial class Evaluation
{
public class EvaluationValidation
{
[DisplayName("Title of evaluation")]
[Code]....
View 1 Replies
Jan 15, 2010
I'm been working on a GetRuleViolations() method for my User class, but I'm getting a little hung up on on something:
What happens when different actions require different business rules?
My User table has the following columns: Id, UserRoleId, Username, and Password. Several actions involving User are possible (create new user, edit user, set/reset password, and log in), and the business rules for each are not always the same.
For example, when users log in, they are required to enter a password, but when admins create a new user, entering a password is not even an option. And in the case of setting/resetting a password, the password needs to be entered twice, and the two values need to be an exact match. What is the best way to handle this complexity? Is there some kind of design pattern to allow the right GetRulesViolations() method to be selected for the right circumstance?
View 2 Replies
Mar 20, 2010
I am using a model but as I want to have clean views I use the viewmodel approach which is like a downsized model which I map in my controller actions before sending to the view or getting it back in a HttpPost attributed action.
My question is: where to put the data annotation attributes. On the viewmodel classes or on the model? If I get it clearly the viewmodel annotations are used for the client side generation of validation right?
Do does that mean I have to put data annotations everywhere on both model and viewmodel?
View 11 Replies
Dec 15, 2010
I'm curious as to what people consider better practice, between duplicating model structure in the view model and using a mapping tool to move data between the two, or aggregate the model inside the view model, i.e. have a property on the view model class that is a reference to the actual model. Which is considered a better approach in general?
View 1 Replies
Jan 5, 2010
I would like to know how i can bind my form values to my strongly typed view from a MultiSelect box. Obviously when the form submits the multi-select box will submit a delittemered string of my values selected...what is the best way to convert this string of values back into a list of objects to attach to my model to be updated?
public class MyViewModel {
public List<Genre> GenreList {get; set;}
public List<string> Genres { get; set; }
}
When updating my model inside the controller i am using UpdateModel like below:
Account accountToUpdate = userSession.GetCurrentUser();
UpdateModel(accountToUpdate);
However i need to somehow get the values from the string back into objects. I beleive it may have something to do with model-binders but i can't find any good clear examples of how to do this.
View 2 Replies
Jun 20, 2010
I have used IDataErrorInfo Validation for my Model.
But when I use these model classes inside a view model, the validation does not happen.
sample viewmodel below
[code]....
Now, if Category or Subcategory classes are directly used as models for view, the validation works fine. But, if CategoryViewModel is used, no validation occurs.
View 1 Replies
Feb 28, 2011
I have the following viewmodel definition
public class AccessRequestViewModel
{
public Request Request { get; private set; }
public SelectList Buildings { get; private set; }
public List<Person> Persons { get; private set; }
}
So in my application there must be at least 1 person for an access request. What approach might you use to validate? I don't want this validation to happen in my controller which would be simple to do. Is the only choice a custom validation attribute?
Edit: Currently performing this validation with FluentValidation (nice library!)
RuleFor(vm => vm.Persons)
.Must((vm, person) => person.Count > 0)
.WithMessage("At least one person is required");
View 4 Replies
Jul 14, 2010
http://weblogs.asp.net/shijuvarghese/archive/2010/02/01/view-model-pattern-and-automapper-in-asp-net-mvc-applications.aspxThat's Great, but it is in #C like every other tutorial I find. Note his ContactViewModelWell here is mine:
[Code]....
How do I add validation in the same fashion as he did in his blog in VB?
View 6 Replies
Jan 19, 2010
When I first heard about ASP.NET MVC, I was thinking that would mean applications with three parts: model, view, and controller.
Then I read NerdDinner and learned the ways of repositories and view-models. Next, I read this tutorial and soon became sold on the virtues of a service layer. Finally, I read the Fluent Validation documentation, and I'll be darned if I didn't end up writing a bunch of validators.
Tonight, I took a step back and thought about what had become of my project. It seems to have become the victim of the design pattern equivalent of "feature creep". Somehow I'd gone from Model-View-Controller to Model-Repository-Service-Validator-View-ViewModel-Controller. You want loosely coupled and DRY? We got your loosely coupled and DRY right here! But I'm wondering if this could be a case of too much of a good thing.
Am I right to be concerned? Or is this actually not as crazy as it sounds? On one hand, it seems crazy to have so many layers. On the other hand, every layer has a clearly defined purpose that makes sense to me. Have your MVC applications turned into MRSVVVMC apps too? If not, what do they look like? Where's that right balance?
View 2 Replies
Sep 1, 2010
Is it possible, inside a Custom Model Binder, to fire "something" that "says" the value is invalid so it gets handled by validation part?
Basically, I am getting an exception when the value for the property is invalid.
View 1 Replies
Dec 12, 2010
I make use of validation with data annotations in my model classes. How do I make sure this annotations are not violated when I validate data in my business layer, before sending it to the DAL? I guess I don't want to define the validation rules in two places (model classes and in my BLL-classes)?
View 6 Replies
Jan 23, 2011
I use FileHelpers to import data from excel sheet to classes and then put it in MSSQL. Can somebody tell me if there is there a way to do model validation data imported from excel files?
View 6 Replies
Oct 12, 2010
I have recently started working on ASP.NET with MVC 2 framework, and I am facing following difficulty in validating my data,
Scenario:
In my application the view (ASPX) is divided into tabs (jQuery) and each tab's content is ViewUserControl (ASCX). The main model for the view has collection of sub models for individual tabs. I use RenderPartial method to render view user control.
[Code]....
And the user control (Tab1.ascx) refers the specific model for it,
[Code]....
Now if in my Tab1Model if I put following validation
[Code]....
In the controller ModelState.IsValid is always indicates TRUE. How do I override the validation behavior such that it as well looks the items in the collection member (which holds sub models) as well.
<%= Html.ValidationMessage("FirstName") %>
View 1 Replies
Nov 30, 2010
I am a MVC newbie & am lost in various ways validation can be implemented in my application.
I created a custom model-level data annotation validator attribute, but am unable to display its error message in the view. Basically, I have let's say 5 properties in the Entity class Job (model-level custom attribute called UniqueKeywords defined on it):
1) LoginID: value comes in the URL
2) Title: Required property level attribute defined on it
3) CatID1, CatID2, CatID3 - 3 categoryIDs - these are dropdowns in the view with same list of keywords in all 3.
I want to mandate that the values picked by the user in all 3 category dropdowns should be different.
With reference to the code pasted below, here is the explanation of what happens:
When I submit the form without specifying a title or picking anything from any of the 3 category dropdowns, the validation occurs for the property level Required attribute as well as model level uniquekeywords attribute, but the error is displayed only next to the required field "Title". I can confirm that the custom validation also works by filling in some text in the Title field & then re-posting the form...this re-displays the view, but the error message "Category cannot be duplicated" is not displayed.
Only relevant code sections are pasted below:
My Entity class code:
[Code]....
View 10 Replies
Nov 12, 2010
I've got a view model that has some text properties. And I use Html.DisplayFor to display them on the screen. But those text data won't be post back, so in the case of failed validation, the returned view won't have those data. How do I handle this kind of situation?
View 2 Replies
Aug 17, 2010
My MVC 2 app includes a simple file upload within in a strongly typed view and I am trying to figure out how to apply model validation to the file name. Is this possible? Is there better way to do file upload within an MVC app?
The salient parts of the (prototype) controller code are:
[Code]....
The Create view code was generated with VS2010 and then modified to support file upload and client side validation:
[Code]....
View 3 Replies
Jul 1, 2010
[Required]
[DisplayName("my date")]
public DateTime? DateReg { get; set; }
so if the user is going to pass in an invalid datetime value he will get this message "The value '02.07.201022' is not valid for my date."
View 1 Replies
Mar 25, 2011
I am using an array to keep track what checkboxes a user has clicked.
[Code]....
However, validation doesn't seem to work for this field. This is how I am rendering it in the view:
[Code]....
[Code]....
[Code]....
View 3 Replies
Jul 10, 2010
I have a Order view with 2 user controls in it.
The first user control in the view is just to validate the customer and get some more details about the customer. This control is having one text box (customer name) with the button. When the user clicks the button it should validate the customer name in the client side using data annotations of customer model. if validation success then it should use some bussiness logic to verify the customer and show the customer details on the form.
The 2nd user control in the view is to get the address of the customer by searching for the house no and the postcode. This control is having 2 text box with the button.
The first user control is based on the strongly typed customer entity
The 2nd user control is bsed on the strongly typed address entity
The view with both the user control is based on the strongly typed order entity.
The issue here is with the validation. I have the validation summary in the view and client sider validation is enabled. When i click the search button on the first user control the client validation starts and throws validation error messages because when i search for the customer at that point of time i will not have values to may of the customer related fields in the order view.
The same thing happen when i click the search button on the 2nd view. It will throw client side validation for other fields.
What i want to achive is that when the user click the search button on the user control 1 then the validation should happen only to the customer name field (both in client and server).
When the user click the search button on the 2 nd user control the the validation should happen only for houseno and the postcode both in client and the server.
When the user clicks the save button on the order view all the fields in the form even the controls usere input fields should get validated. How to achive this in mvc?
View 4 Replies
Jul 6, 2010
With my model, I have one view model using another as its base. In my case, BaseUserModel is inherited by CreateUserModel, in order to share common properties such as Username and Password. My CreateUserModel adds to that by having ConfirmPassword, Email, SecurityQuestion, etc.
My problem is, when using the ValidationSummary() Html helper, the validation is obviously in order of the properties in my model. Basically, because of the inheritance I have going on here, the errors are not in the correct order.
Is it possible to control when or how these validation rules are added to the list? The only attribute I'm using is Required.
View 2 Replies
Feb 14, 2010
I am uploading a JPEG image in an ASP.NET MVC web site.
The model validation fails in IE, but passes in Firefox, when I try to check the mime type of the
HttpPostedBaseFile.
So I debuged it and I found that when using Firefox the Mime type is "image/jpeg" as expected.
When using IE8 the mime type is "image/pjpeg".
Don't say that Microsoft invented a new Mime Type of JPeg images?
View 3 Replies
Jul 9, 2010
I'm starting with asp.net MVC 2. Very cool.I have been reading about the data annotations validation attributes that can be set on the view model properties.It's cool but I have a scenario where I need to determine at runtime whether one of the property is required or not.How can I achieve this ? I want to have client side validation enabled too.
View 6 Replies
May 23, 2010
i am currently working on an asp.net mvc (.net 3.5 sp1) web app, that uses data annotations and client side validation. I would like to have localization enabled, thus i have implemented a localization mechanism for enabling site visitors select the locale they prefer, by overriding the Execute() controller action and setting the CurrentCulture appropriately (i get the culture to change to from the URL route parameters).
I tried implementing my model validation messages localization with no success. What i did was adding two resource files undeer my model App_LocalResoorces folder (one for my locale greek language Validation.el.resx and one for the default english language Validation.el.resx) and set the appropriate file properties ("Access Modifier" to "Public", "Build Action" to "Embedded Resource","CustomTool" to "PublicResXFileCodeGenerator" and "Custom Tool Namespace" to "ModelLocalRes". Then i added a RequiredFieldPrompt" name-value to both the resource files.
Then i tried modify the required validation attribute on my model's name metadata like this:
[Code]....
The problem is that i cannot get the localization working, since the error message gets displayed always for the english default locale, no matter the locale selected from the site visitor.
View 11 Replies