I'm trying to add a new html attribute to my ValidationSummary Html control like this:
<%= Html.ValidationSummary(new { id = "validationSummary" })%>
VS compiler has no problem with it, however when it comes to running it in the browser I get the nasty error message saying:
'System.Web.Mvc.HtmlHelper<Adgistics.Mvc.ViewModels.Forum.IForumCreateOutModel>' does not contain a definition for 'ValidationSummary' and the best extension method overload 'System.Web.Mvc.Html.ValidationExtensions.ValidationSummary(System.Web.Mvc.HtmlHelper, string)' has some invalid arguments
I am trying to make an AJAX Form work correctly with Client Validation, but I can't seem to figure out how to make it work together.Currently I have a view like this:
[Code]....
My model:
[Code]....
The client validation works on the Required and Stringlength attributes, but if I put an incorrectly formatted email, it still returns successful. Is there a special way to do the regular expression attribute? Or am I doing it wrong?
I've placed Html.ValidationSummary(true) on my page so that an error can be displayed that are not associated with a field.
This renders the following html <div class="validation-summary-errors"><ul><li style="display: none;"></li> when there are some ModelState errors are present, all of which are associated with a field. ie there are no page level errors
I've put some background and border styles on the div which give the look that I want.
The problem is that the div is visible even though the collection is empty.
I understand why this is happening but was wonder if there where any techniches to prevent the html from being rendered or to hide the div using styles if the ModelState errors collection is empty?
If its possible I'd like to avoid using jquery to hide the validation summary as the site should work without javascript.
I have searched and Googled for the answer to this question to no avail. I'm using EF4 and ASP.NET MVC2 and I have an EF4 entity "Award" with a non-nullable string field, "RecipientID". I'm using DataAnnotations for server-side validation, so in my "Award" partial class I've set up the RecipientID to have the Required attribute. When I try to submit the form with the RecipientID text box empty, I see my error message "Please enter a recipient" in the Html.ValidationSummary twice.
Would this be because the error is being thrown both by the entity (in that it is a non-nullable field with a null value), as well as the application? Whatever the reason, is there a way to "fix" this and have the error message show up only once? (Fix being in quotations because I'm not sure if this is intended behavior or not.) I didn't think it would be necessary to include relevant code, but I will if it's needed.
How is it possible to add a custom error message to the ValidationSummary HtmlHelper? Can it be part of my model? It's for a sign up form and I need to validate whether the user already exists.
I am not sure what I am doing wrong in how I set up validation on my models and viewmodels. For some reason on several of my views that contain a validation summary, it appears empty on initial load of the page. On some other pages it appears correctly when the form's data is posted and it does not appear on initial load, this is the way that I would expect it to work.
On the views where this is occuring, my viewmodels are somewhat more complex in that they contain another complex type that I am passing around that has it's own set of DataAnnotation Validation properties, but I have called the validation summary like this; Html.ValidationSummary(true) so that those properties are not validated.
I've been tryin to find an example of the syntax for getting an html 'title' for a string when using Html.Encode(). I want to display the full name in the mouseover title, if it's too long.
Is there a way to do this without wrapping the string in a < span >, i.e.
<span title = "<%=Html.Encode(model.Name) %>"> //displays the full name on mouseover <%=Html.Encode(model.Name.Substring(0, 10))%>... //displays the name up to a max length </span>
I am working in a CMS where we use tokens ( which is turned into a user control. Is there a way to add the user control into an attribute value for our template style? example :
<div class="<$tokenName/$>" />
this currently outputs an encoded user control, which is then not parsed by IIS.
I have a large string containing a custom HTML tag (xxx). The tag also has two attributes. How would I retrieve the value of the two attributes and then place the tag and its content with a new string derived from those two attributes?
An error occurred during the processing of /_layouts/MyPage/Info.aspx. Literal expressions like '<%$Resources:wss,okbutton_accesskey%>' are not allowed. Use <asp:Literal runat="server" Text="<%$Resources:wss,okbutton_accesskey%>" /> instead
That doesn't work in this situation as that would mean nesting the Literal between the quotes of the accesskey attribute, which causes a "The tag contains duplicate 'ID' attributes" error.
Is there a way to use a string from a resource without having to change the input to an asp:Button? I guess there has to be a way using <%=, but I don't know how I would address the resource itself?
I have been experiencing some very strange behavior using html buttons with the onserverclick attribute. What I am trying to do is use jQuery to designate the default button on the page. By default button I mean the button that is "clicked" when a user hits enter. In testing, I would hit enter while in an input field and sometimes the intended "default" button was clicked and the server side method defined in the corresponding onserverclick attribute was hit. Other times a post back was made without hitting the server method. In order to isolate the issue I created a minimal test case and found some very interesting results.
Client side: [Code] ....
Server side: public partial class admin_spikes_ButtonSubmitTest : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void ServerMethod1(object sender, EventArgs e) { _response.Text = "server method1 was hit"; } protected void ServerMethod2(object sender, EventArgs e) { _response.Text = "server method2 was hit"; } }
What I found was that everything worked as expected with this code except when I removed one of the input elements. In Firefox 3.6 and IE 8 when only one input exists on the page, hitting enter does not trigger the onserverclick, it makes a post back without even being jQuery "clicked" or actually "clicked". You can test this by starting with two inputs and clicking "test2". This will output "server method2 was hit". Then just hit enter and the output will be "server method1 was hit. Now take away an input and run the same test. Click "test2" see the results, then hit enter and you will see that nothing will change because the "test1" method was never hit. Chrome worked as expected
How do I create an ASP.Net MVC Helper for an Html.Label which takes in attributes? Currently when I define an Html.TextBox I am able to pass in a list of attributes. Sort of like below:
new {disabled="disabled", @class="pcTextBoxWithoutPaddingDisabled"})%>
However, it does not look as though the Html.Label has this feature. As a result, I have to define my labels using the label tag. Sort of like below: <label class="pcLabelBlackWithoutPadding"> I would like to be consistent I how my Html element get created. So, how do I create an Html.Label that will take in a list of attributes?
It doesn't seem that the Html.CheckBoxFor helper adds the correct "checked" attribute when rendering the HTML. I have a bool property rendered like so:
I have an ASP.NET content page. The HTML tag associated with the content page is declared in the master page. I need to add an attribute to the HTML tag from the content page. My problem is, I do not know how to access this HTML tag from the content page.
I'm new to ASP.NET and MVC in particular. Now, I'm trying to understand if I can easily get values of custom attributes of submitted data. For example, When writing something like this inside a form (which works and posts and I can get the checkbox value) <%= Html.CheckBox("cb1", new { listen = "listen:6" }) %> Can I get the value of "listen" directly or do I need JS? (I know I can just use hidden fields, but I'm I'm asking anyway)
I have a web user control menu of page. Now I want HOME (which is an hyperlink text) in menu to be Bold at the time default.aspx Loaded (Load event)! How can I do that If any one can provide code! I am using VB .Net at back.
I am using the MetaDataType DataAnnotation to validate my models in an MVC2 application. I also apply the DisplayFormat annotation so that currencies and dates are formatted the way I want. This method works for the original Html Helpers such as :
[Code]....
When I used the new strongly typed helpers:
[Code]....
the formatting never gets applied. Is there a way around this?
I have a set of links that exist in the master page. I have a css class i would like to assign to a particular one of them depending on if that is the page you are at during page load. ex: Home will have the current_page_item class if you are at the index page
This is what I have:
Code:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load DirectCast(Me.Master.FindControl("ctl00_homeLi"), HtmlGenericControl).Attributes.Add("class", "'current_page_item'") End Sub
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?