Data Annotation Attributes Not Working Using Buddy Class Metadata In An MVC App?

Oct 7, 2010

I have found hints that MVC 2 recognises the 'buddy class' type of property metadata, where data annotation attributes are applied to a 'buddy' metadata class, and the MetadataType on the actual entity class points to that buddy class, as below. However, as below, it seems the only attribute that makes any difference to the rendered UI is DisplayName. Why are the other attributes like DataType, Required, and ReadOnly not working? I.e. why can I enter text in a read only field? Why do I not get an error when a required field is empty? Why does the DataType attribute have no apparent effect? Why does EditorForModel not include validation messages?

[MetadataType(typeof(CustomerMetadata))]
public partial class Customer
{
public class CustomerMetadata
{
[ScaffoldColumn(false)]
public object CustomerId { get; set; }
[DisplayName("CustomerNo.")]
[ReadOnly(true)]
[Required(AllowEmptyStrings = false, ErrorMessage = "Customer No. is required.")]
public object CustomerNo { get; set; }
}
}

I find behaviour the same whether I use an explicit LabelFor and TextBoxFor for each model property, or a single EditorForModel for the whole model.

View 2 Replies


Similar Messages:

MVC 3. Data Annotation Attributes Are Not Woking

Feb 1, 2011

I've just installed MVC 3 and have the following problem. Even if I try to run the sample project, that is included in MVC 3 installation, when I go to the Register form, only the Required attribute causes validation. The Email Format attribute doesn't work,which means I can enter non-email string into the email field and it submits the form without any error messages.

View 6 Replies

MVC :: To Put The Data Annotation Attributes - On The Viewmodel Classes Or On The Model?

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

When Building A Datagrid Helper How To Access The New Data Annotation Attributes Using Reflection

Feb 3, 2010

So I've eagerly added the System.ComponentModel.DataAnnotations namespace to my model.

I've added things such as:

[Required] [DisplayName("First Name")]
public string first_name {get;set;}

I really like these attributes because they save me from having to write custom T4 and/or modify views heavily. This way, I can regenerate a view confident that it will add the display names I want, etc.

The problem comes in when I started building a DataGrid helper inspired by the one in ASP.NET MVC2 unleashed. In this helper, Stephen uses reflection to get at the column headings.

var value=typeOf(T).GetProperty(columnName).GetValue(item,null) ?? String.Empty;

Well, the trouble is I don't want to retrieve the property name. I want to retrieve the value for the DisplayName attribute.

My first attempt at this was to look inside the Attributes property of the PropertyInfo class. Unfortunately, none of the data annotations show up as an attribute.

Is there a way to retrieve the data annotations using reflection?

View 2 Replies

MVC :: Validation To Work For Buddy Class In 2 Screens?

Oct 14, 2010

I have set up my buddy class with validators. However I only want the validators to fire of the associated fields are used in that particular screen. When I split them across 2 screens I find my validation doesn't work. How do I fix this? I have had to remove the validation from some properties in order to get it to work on one screen;See the class here;#region "Buddy class" for validation

View 3 Replies

MVC Class Level Custom Data-annotation And ModelState Keys?

Apr 10, 2010

I have custom class level validation attribute, inheriting from ValidationAttribute, on my model.

How come it doesn't register a key in the ModelState when its IsValid is false? I can see the the error message in the ModelState.Values collection, but the ModelState.Keys collection only shows an empty string "". Can I provide a key for it - presumably this is because its not assigned to a property?

I wanna be able to use ModelState.Remove in my controller to remove this error upon a certain condition, but I have no Key!

View 1 Replies

MVC :: Some Model Metadata Attributes Don't Seem To Work With Html.EditorForModel ()

Apr 5, 2010

i am working an asp.net mvc 2 web app using model metadata and some of the model metadata don't seem to work when using the default Html.EditorForModel().For example, when applying the DefaultValue(1) and the ReadOnly(true) attributes on a model field, the field displayed on edit view has zero for its default value and it is not read only.

View 5 Replies

Is There A Tool In Visual Studio Or Plug-in To Automate Creating Buddy Class Validation

Dec 18, 2010

I am walked by Scott Hanselman's book through how to create NerdDinner MVC application.To validate the entity type Dinner that is generated by Entity Data Model Wizard, he extended the entity Dinner first by using partial class trick and then made a buddy class to be associated with Dinner.

namespace NerdDinner.Models
{
[MetadataType(typeof(DinnerValidation))]
public partial class Dinner { }
public class DinnerValidation
{
Required(ErrorMessage = "Title is required")]
[StringLength(50, ErrorMessage = "Title may not be longer than 50 characters")]
public string Title { get; set; }
[Required(ErrorMessage = "Description is required")]
[code]...

View 3 Replies

MVC :: Generate View With Loop And Metadata Class?

Feb 12, 2011

I'n trying to setup a view template dynamically using a foreach loop. The view template is as follows:

[Code]....

My metadata class is as follows:

[Code]....

The partial seems to render the labels correctly, displying the appropriate name for the fiields that I have annotated. However the value of the fields is always set to the class property name itself rather than the value of the given record itself.Now I'm pretty sure my problem is something stupid, but I can't see what I am missing. I followed Brad Wilson's guide here adjusting it for Razor's syntax:http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-4-custom-object-templates.html

View 4 Replies

Forms Data Controls :: Gridview Change First Row Attributes Not Working?

Nov 19, 2010

I have a gridview, and I want to change the backcolor of any row that has the column checkedin = false.

I have this working fine, except that it will not change the backcolor of the first row and only the first row. Matter a fact if I sort the columns by clicking on the header rows the order changes and the backcolor highlights the row that was the first row before it was sorted so long as it is not the first row. I actually removed all formatting from my gridview and still the same issue.

here is my code

[Code]....

View 2 Replies

C# - How To Add A Class To A GridView Using Attributes

Oct 22, 2010

i want to add items to a gridview in asp.net from a custom class. The class has Properties X and Y. Does anyone know if im able to add special attributes to these properties so i can just add the class and not have to muck around?eg..

[Column("Name")]
public string Name { get; set; }

Ideally i can then write something like..

this.gridview.datasource = instanceOfMyClass;

View 1 Replies

Iterate Through The Attributes Of A C# Class?

Feb 5, 2010

Say I have a class:

public class TestClass
{
public String Str1;
public String Str2;
private String Str3;
public String Str4 { get { return Str3; } }
public TestClass()
{
Str1 = Str2 = Str 3 = "Test String";
}
}

Is there a way (C# .NET 2) to iterate through the Class 'TestClass' and print out public variables and attributes?

Remeber .Net2

View 4 Replies

MVC :: Specify Size,maxlength,class And Other Attributes?

Mar 6, 2010

How do I specify size,maxlength,class and other attributes for the

<%= Html.TextBoxFor(model => model.XXX) %>

View 4 Replies

C# - Can Control The Order In Which The TagBuilder Class Renders Attributes?

Aug 12, 2010

I know this is kind of obsessive, but is there a way to control the order that the TagBuilder class renders the attributes of an HTML tag when you call ToString()?

i.e. so that

var tb = new TagBuilder("meta");
tb.Attributes.Add("http-equiv", "Content-Type");
tb.Attributes.Add("content", "text/html; charset=utf-8");
tb.ToString(TagRenderMode.SelfClosing)

will return

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

not

<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />

Changing the order that you add the attributes doesn't change it, it seems to be rendering in alphabetical order

View 2 Replies

Remove Class Id Attributes Of All Tags In Given Html Posted

Dec 18, 2010

I have a fck editor in which the user enters some text. And in the code i want to strip the class,id attributes of the text posted. I know this can be done through regular expressions And i have written some code to do so but unfortunately it's not working.

private string RemoveScripts(string input)
{
string re1 = "(.*?"; // Non-greedy match on filler
string re2 = "(class)"; // Word 1
string re3 = "(=)"; // Any Single Character 1
string re4 = "(".*?"))"; // Double Quote String 1
string re5 = "(id)";
Regex regClass = new Regex(re1 + re2 + re3 + re4, RegexOptions.IgnoreCase | RegexOptions.Singleline);
Regex regID = new Regex(re1 + re5 + re3 + re4, RegexOptions.IgnoreCase | RegexOptions.Singleline);

input = regClass.Replace(input, new MatchEvaluator(ReplaceClassID));
input = regID.Replace(input, new MatchEvaluator(ReplaceID));
return input;
}
private string ReplaceClassID(Match m)
{ return ""; }

View 1 Replies

Web Forms :: Dynamically Change Attributes - Add A Class To The Div If The Page Above Is Clicked Too

Feb 5, 2010

I have a menu generated by my cms:

<ul>
<li><a href='default.aspx?pageid=2' id='link2'>rrr</a></li>
<div runat='server' id='menu2'>
<a href='default.aspx?subpageid=8'>rrr</a>
<a href='default.aspx?subpageid=9&siteid='>rrr</a>
<a href='default.aspx?subpageid=10&siteid='>rrr</a>
<a href='default.aspx?subpageid=11&siteid='>rrr</a>
</div>
<li><a href='default.aspx?pageid=3' id='link3'>Your Services</a></li>
<li><a href='default.aspx?pageid=4' id='link4'>rrrrrr</a></li>
<div runat='server' id='menu4'><a href='default.aspx?subpageid=1'>Single Equality Scheme</a>
<a href='default.aspx?subpageid=2&siteid='>Diversity Strands</a>
<a href='default.aspx?subpageid=3&siteid='>Equality Impact Assessments</a>
<a href='default.aspx?subpageid=4&siteid='>Quality and Safety Committee</a>
</div>
<li><a href='default.aspx?pageid=9' id='link9'>Contact Us</a></li>
</ul>

I would like to change the link that has been clicked, to class="active". I would like to add a class to the div if the page above is clicked too.

If (Len(Request.QueryString("pageid")) <> 0 and Request.QueryString("pageid") = 4) Then
menu & Request.QueryString("pageid") & .Attributes.Add("class", "active")
link & Request.QueryString("pageid") & .Attributes.Add("class", "activelink")
end if

View 3 Replies

MVC :: Extend The HtmlHelper By Using Metadata / Access Metadata In HtmlHelper Extension Method?

Jan 9, 2010

I would like to extend the HtmlHelper by using metadata (similar to DataAnnotaions metadata). Specifically I want to be able to add a 'Title' attribute to html controls that will then appear as a tooltip on the control. I would like to keep the tooltip text with my model, for example by adding 'Tiltle' metadata to the model as follows:

[DisplayName("User Id")]
[Title("Enter your 10 digit user id")]
property UserId { get; set; }

So the questions are:

1. How do I add metadata (such as 'Title') to my model?

2. How do I access this metadata in my HtmlHelper extension method?

[code]....

View 4 Replies

DataAnnotation Attributes Not Working In MVC2?

Jul 9, 2010

I am having trouble with the with mvc2.

I am using the Entity Framework as my ORM. I have used the POCO Entity Generator to create POCO objects. I moved the generated objects to a separate project. I followed steps outlined here(Tutorial). This is my project structure

Sports.Data - Entity Frmework and Data Access

Sports.Entities - The poco objects generated and buddy classes

Sports.Web - The web application

In the Sports.Entities project I have created buddy classes for the generated pocos.

The problem I am having is that the attributes are being ignored by the mvc. The validation is not working and the correct label text is not being displayed. Instead of 'Shirt Size', 'ShirtSize' is displayed.

Here is the code.

<div>
<%: Html.LabelFor(m => m.Player.ShirtSize)%>
</div>
<div class="editor-field">

[Code]....

View 2 Replies

MVC :: Data Annotation Add And Edit Mode

Jun 23, 2010

i have a field username which i want to have as a label in the edit.aspx and as a typical textbox in create.aspx . i have applied datannotation class . how would i do that. in the edit mode it is always going model.isvalid ==false . so what i did had a textbox there with the label and hid it . it is working fine now . but is there any clean way this is done in dataannotation

View 5 Replies

MVC :: Data Annotation W/ Linq To SQL Generated Classes?

May 14, 2010

Technically I have the Data Annoations working with Linq to SQL classes - the problem is when validation
passes. When UpdateModel() tries to do its thing i can an error:The model of type 'MyProject.Models.Employee' could not be updated.What i did was i created a partial class for Employee (that is generated by linq to sql), then stuck a Meta Data class on top of it for the validation

[Code]....

And in my master page i include

<script type="text/javascript" src="/Scripts/jquery.validate.min.js"></script>

View 9 Replies

Create Custom Data Annotation Validators?

Aug 5, 2010

Wanting to create custom data annotation validation. Are there any useful guides / samples on how to create them?

Firstly: StringLength with minimum and maximum length. I'm aware .NET 4 can do this, but want to do the same in .NET 3.5, if possible being able to define minimum length only (at least x chars), maximum length only (up to x chars), or both (between x and y chars).

Secondly: Validation using modulus arithmetic - if the number is a valid length, I wish to validate using the Modulus 11 algorithm (I have already implemented it in JavaScript, so I guess it would just be a simple porting?)

Update: Solved second problem, was just a case of copying over the JavaScript implementation and making a few tweaks, so don't need a solution for that.

View 1 Replies

C# - How To Restrict A Data Annotation's Usage To A Particular Property's Data Type

Mar 31, 2011

I have a validation attribute that inherits from ValidationAttribute. However, the particular usage of this attribute applies to lists only (IEnumerable really). How can I specify the usage of this property to only be used with items that inherit from IEnumerabe?

View 1 Replies

MVC :: Data Annotation Validator REQUIRED On Client Side Not Work

Jun 6, 2010

Something is wrong in ASP.NET MVC 2 on client side validation. If I have form for create records in database and all fields are required, validation is triggered only then when I write something in field and delete it. If I go to field, stay this field empty and press Tab key validation isn't triggered.

Here somebody else write about the same problem: [URL]

View 1 Replies

Automatically Generate Buddy Classes From Model In C#

Apr 28, 2010

I use Linq to Sql (although this is equally applicable in Entity Framework) for my models, and I'm finding myself creating buddy classes for my models all the time. I find this time consuming and repetitive. Is there an easy way to automatically generate these buddy classes based on the models? Perhaps a visual studio macro?

[MetadataType(typeof(PersonMetadata))]
public partial class Person
{
}
public class PersonMetadata
{
public object Id { get; set; }

View 4 Replies

MVC :: How To Display Model Level Custom Data Annotation Validation Error

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







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