MVC :: Conditional Requirement Attribute For Model?
Jun 23, 2010
Is it possible to extend the RequiredAttribute class in a way to have it validate a condition against another property in the model? For example, in my hypothetical code.
[Code]....
The DriversLicenseProperty is to be required in the model if HasLicense is true. Is this possible? Is there an example somewhere?
We're trying to get a conditional attribute to work, case in point, there's a boolean (checkbox) that if checked, its related text is required. So, ideally we'd have something like ...
public bool Provision { get; set; }
[ConditionalRequirement(IsNeededWhenTrue = Provision)] public string ProvisionText { get; set; }
Is this even possible?
Alternate idea (not as elegant?) public bool Provision2 { get; set; } [PropertyRequired(RequiredBooleanPropertyName = "Provision2")] public string Provision2Text { get; set; }
I am a newbie in mvc3 and i'm wondering how to use attribute like [Display(Name="")] for model that comes from an entity data model that I provide im my "Model" folder in my mvc3 project.
I didn't provide a .cs class for each of my database tables .
other words, I want the controller class render a edit form for me like :
I think I might have stumbled onto a bug in ASP.NET MVC 3 RC. When I setup my MVC2 project in a new MVC3 project, copy paste classes, code, change name spaces, etc, etc, I ran into an issue in the following, simplified for explanation purpose, scenario:
Model:
public class WineDetails { [SkipRequestValidation] [Required(ErrorMessage = "Beschrijving verplicht")] public string Description { get; set; } }
ViewModel:
public class ViewModelCreateWine { public MasterData MasterData { get; set; } public WineDetails WineDetails { get; set; } }
ActionMethod:
[AcceptVerbs(HttpVerbs.Post)] public ActionResult CreateWine(ViewModelCreateWine viewModelCreateWine) { GetMasterDataRegions(viewModelCreateWine); if (Request.Params.ToString().IndexOf("Save") > 0) { if (TryValidateModel(viewModelCreateWine.WineDetails)) { m_wineService.CreateWine(viewModelCreateWine.WineDetails); return RedirectToAction("index", "Admin"); } } return View(viewModelCreateWine); }
The ActionMethod "CreateWine" needs to call the "CreateWine" method in the WineService so that in the end a new Wine is added to the Database. So far it looks ok. As shown in the above code the [SkipRequestValidation] is set on the "Description" property of the WineDetails model so that the user can add Rich Text to the description and HTML elements are allowed during the Request validation. This works perfectly fine until the Params collection of the Request is accessed in the code to check if the Save button is clicked. When this line of code is trying to execute the following exception is thrown:
Exception Details: System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client (ViewModelCreateWine.WineDetails.Description="<p>HTML Content with...").
The same exception is thrown when I put the [ValidateInput(false)] attribute on the action method. When I comment out the "if" statement and its content there is no issue and the model validation works just fine and skips the Request Validation on the Description property as expected.
In MVC2 the above code worked fine with the [ValidateInput(false)] attribute on the action method.As I said I'm not sure if this is a bug, it very well might be my own stupidity, but I thought it would be worth to mention here. So any feedback is more than welcome.
let us assume we have a Chemical master table with 10000 records. this table contains chemdesc,uom,closingquantity,closingvalue,...,createdon. for every chemical there are multilple records. so i want a query to get chemical name with recently created records. i mean to say that last record of each and every chemical. [if i have give date like 22-08-2010 then i should get records on or before latest record of each chemical]
I have some suitation where i want to store aspx controls in SQL Server database and retrive on aspx.cs page according to database i want to design my aspx page and also event handler to them.
Controls may be vary time to time according to suitation and aspx page changes all time according to suitaion.
For Example :
I want to display a information about Computer and Technolgy the aspx page will be display only Computer related topics like 1. Computer Name 2. Price 3. Discount
but in other case I want to display information about City Information then Display 1. City Name 2. Distance from nearest city. 3. City Map 4. About City 5. Query or book a car. extra - extra.
I have developed real time application in asp.net. The software listen data from hardware devices and store data in database. Now I want to set minimum hardware requirement for my application.
In asp.net web application I have restricted users actions depending on their roles like as follow
I have created three tables in database
Tables
Table: Users
UserID Username Password 1 Bob password1 2 Scott password2 3 Jisun password3 4 Sam password4 5 John password5
Table:Groups
GroupID Name 1 Administrators 2 Clerk 3 Manager 4 Cashier
Table:Roles
UserID GroupID 1 1 2 2 2 3 3 4 4 3 4 4
In Global.asax file I have written the following
Sub Application_AuthenticateRequest(sender As Object, e As EventArgs) If Request.IsAuthenticated Then 'Determine this user's roles[code].....
as of now it is working fine. Now a new requirement has araised that to allow the clerk to access some of (but not all) functionalities perfomred by administrator.
Do i need to change my source code to provide above new requirement?
Do I need to do the same again and again when such requirement araises in future ?
I'm using the jQuery NotifyBar quite nicely in an Index view to display business rule errors when a user e.g. clicks a delete link for an item than cannot be deleted. However, if the user adds a new item, they are redirected to the Create view. If the new item is successfully created, the Create action redirects back to the Index view.
My quandary is that I need (have been told) to show a success notification in the above scenario. Previously, to request a notification while remaining on the same view, I was using return JavaScript() for an action result, but when I use return RedirectAction() for the action result, I'm left with nowhere to put the return JavaScript().
The way I see this is that I need to: a) include information in the return RedirectAction() that tells the 'destination' view to show the notification, or b) invoke the notification in the 'source' view, instead of the return RedirectAction(), and tell it that when it closes/is closed, to perform the redirect to the 'destination' view.
actually i got confused in session object,view state,application domain, can u tell me where i have to use these object. can u define some sort of condition in which session object must used & view state must used & diffrence of thses object where we can only use session & where i we can only use view state
We have a controlled list of the users (It s an Extranet solutions for our collaborators)
We need to develop some new web pages (not all) some of which require the user accessing the web page to fill out some form and sign it using his digital signature/certificate. Each customer has their own certificate which he has on his computer (either as a local desktop file or the certificate may be probably integrated into the browser certificates via browser advanced options).
In other words:
1- Allow a client visiting some of the web pages to digitally sign the form before submitting it to our web server (the signature is his specific certificate)
2- Send either the form and the certificate or the html encrypted with his certificate to the web server
3- Read and identify the certificate on the web server (C# code)
I created a simple Master Page in Visual Studio 2008:
<%@ Master Language="VB" CodeFile="MasterPage.master.vb" Inherits="MasterPage" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
and got green underlined 'Master' with two warning messages: 1.Validation (ASP.NET): This attribute name must be followed byan equal (=) sign and a value. If the value is in quotation marks, the quotation marks must match. 2. Validation (ASP.NET): Attribute 'Master' is not a valid attribute of element 'Control'.How I can get rid of the messages?
I am using VS2008.I am binding dynamic datatable to gridview. I have few dropdowns and textboxes in gridview. I have dropdownlist(ddlTrCodeNw_)in gridview foooter template. Based on the selection of Trcode value few controls will be enabled,disabled,visible,hide. in gridview.
<asp:GridView ID="gvAPPost" runat="server" Width="100%" ShowFooter="true" AllowPaging="true" AutoGenerateColumns="false" onrowcommand="gvAPPost_RowCommand" onrowdatabound="gvAPPost_RowDataBound" > <Columns> <asp:TemplateField HeaderText="Discount %" Visible="false"> <FooterTemplate> <asp:TextBox ID="txtDiscountPerNw" runat="server" Width="40px" Enabled="false" Visible="false" ></asp:TextBox > </FooterTemplate> <ItemTemplate> <asp:TextBox ID="txtDiscountPer" runat="server" Width="40px" Enabled="false" Visible="false"></asp:TextBox > </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> Intially I set TemplateField HeaderText also Visible="false". so i have written the condition in ddlTrCodeNw_SelectedIndexChanged. Now when if(ddlTrCodeNw.SelectedValue=="24") { txtDepstNw.Enabled = true; txtDepstIncNw.Enabled = true; txtCrdtNw.Enabled = false; txtCrdtIncNw.Enabled = false; lblDiscTrcodeNw.Visible = true; // I want to show this TemplateField HeaderText also when i need. }
I can I show TemplateField HeaderText also whenever i need.
i'm trying to host an .net framework4.0 application in IIS7. i got an error while clicking on the manage module in modules .like ("Unrecognized attribute 'targetFramework'. Note that attribute names are case-sensitive. ") .I changed my application poll to .net4.0.I am able to browse my application
I installed Microsoft Visual Studio 2010 Ultimate Trial and converted existing asp.net 2.0 web application and I am getting this error: znrecognized attribute 'targetFramework'. Note that attribute names are case-sensitive. It's coming from this section in the web.config which was auto-generated by VS2010 when I converted the project:
I am developing asp.net mobile application. I am using LINQ to XML to query XML file. I am using the following query to retrieve the name & value of the query dynamically as follows
var TotalManifolds = from MF in FieldRoot.Element("FIELD-DEFINITION").Element("MANIFOLDS").Elements("MANIFOLD") join SLT in FieldRoot.Element("FIELD-DEFINITION").Element("SLOTS").Elements("SLOT") on (string)MF.Attribute("MID") equals (string)SLT.Attribute("PARENT") select new { SlotName = (string)SLT.Attribute("NAME").Value, SlotValue = (string)SLT.Attribute("NAME").Value };
In the following statement of above query I want to retrive the name of the attribure dynamically without explicitly specifying the name of the attribute SlotName = (string)SLT.Attribute("NAME").Value Here I am explicitly specifying the name. I want to code which can dynamically retrieve the name of the attribute. I am new to Linq to xml. how this can be done programatically? or can you provide me the link through which I can resolve the above issue ?
I'm building an MVC 2 RTM app, and I want to be able to share my model across applications. I'd *like* to be able to implement it like:ASP.NET MVC2 app (holds Views and Controllers)Class library to hold Model(s)WCF app to handle the data transactions with the models via different data stores across apps I had the MVC app working fine, but I wanted to abstract the data stuff and be able to work with the model across apps through the WCF site, so I created a class library project and moved all of the Models classes into that and set-up a WCF app, then added project references to the MVC and WCF apps that point at the class library. The idea was I can create services that take and return objects from the model via method calls across apps. It appears that everything's wired up correctly in the MVC project, so I'm passing the objects stored in the Models class library between controllers and views and everythig is compiling just fine, but for some reason the data is not being passed back from the views to the controller on POST -- all of the properties in the classes are null or empty.
When I debug the app, I can see that the values are stored in the model data dictionary but not the model object itself. What am I doing wrong? Am I on the wrong path, or missing something obvious (to some)?
I made a few changes to the DB in SQL server management studio then right clicked on the .edmx doc to get it to update. That seemed to work fine but when i compiled the app everything that referenced the EF seems to be broken.The Error list now contains the below error for all classes that used it.
The type or namespace name '' could not be found (are you missing a using directive or an assembly reference?)