I have a RegisterModel view model I use for my new account registration page. Depending on the status of a registration task, the model has a relevant text message to display for the user, e.g. "Waiting for email confirmation" etc.
I currently populate this string property in the manner below, but couldn't help wondering about mixing markup and content like I do with the <p> tags. Is there a better or more accepted way of doing this, besides having multiple partial views with actual HTML literals instead of model properties?
RegisterMessage = "<p>Please use the form below to create a new account.</p>";
RegisterMessage = string.Format("<p>Passwords are required to be a minimum of {0} characters in length.</p>", _membershipService.MinRequiredPasswordLength);
EDIT: I have just noticed that the <p> tags are rendering literally, but I doubt that issue falls under the same question.
im getting the following exception for use into a master page the helper html.renderpartial(). This works on mvc views that uses this master page, but im trying to execute an old aspx webform page that uses the same masterpage. And here comes following exception:A ViewMasterPage can be used only with content pages that derive from ViewPage or ViewPage.This is the code of my master page:
I currently trying to convert a ASP.NET MVC2 application to ASP.NET MVC3 razor. I have a lot custom Html helper methods, which render html output, like the one below, which renders a button with some markup :
I think I need to drop in some escape characters, but I'm not quite sure where. Here is the javascript function I'm attempting to call:
function setData(associateValue, reviewDateValue) { var associate = document.getElementById("Associate"); var reviewDate = document.getElementById("ReviewDate"); associate.value = associateValue; reviewDate.value = reviewDateValue; }
Here is the asp .net mvc line where I'm attempting to create a Radio button with a click event that calls the above function and passes data from the model as javascript parameter values.
<%= Html.RadioButton("Selected", item.Selected, new { onClick="setData('<%=item.Associate%>','<%=item.ReviewDate%>' )" } )%>
The above throws a bunch of compile issues and doesn't work. A call such as the following does call the javascript, but doesn't get the data from the model.
I just wanted to hear some authorities on when and where you should use a LITERAL control over a LABEL. As I understand it, the difference is this: A LABEL can be styled via the <SPAN> tags that are added.
I personally find the addition of <SPAN> tags in my HTML to be very annoying and never actually apply styles through ASP, and so LITERALs seem to be what should be used most of the time... but I'm concerned there's other considerations or benefits to using a LABEL over it that I'm unaware of.
Is it 100% completely fine to replace any LABELs with LITERALs, provided we're not applying styles to them? Are there NO other considerations?
I have advice that this might work for programmatically filling a set of literals from a set of object properties:-
[code]....
However, the line: ctl.Text = pageData.help(i).trim() fails because it's not understood that pageData.help(i) should translate to pageData.help1, pageData.help2, etc.
I was going through the spark view engine documentation and found a lot of literals showing up in code for which I couldn't find any references. For e.g. ! , #, $ , !$ , ... What are these for? What do the combinations mean? When do they come into use? Am I missing any more literals that precede or comes after {
I'm using Josh Bush's MaskedInput plugin for jQuery in an ASP.NET 3.5 Webform app. How to get rid from the literals in the code-behind file after form submit? E.g: a phone input with the mask $("#txtPhone").mask("(99)9999-9999");
In the code-behind:
string customerPhone = txtPhone.Text Which returns me: (12)3456-7890 But this is what I want: 1234567890
In the plugins changelog page it says I can use mask() method with no arguments to archieve this. But how to do it from the code-behind?!
EDIT
I want to send to the server the unmasked value. How to do that?
I'm new to c# and .net but I think what I'm trying to do is fairly simple, however I think I'm getting stuck on variable types.So I have say 6 literal webcontrol myReq1, myReq2, myReq3.... and rather than implicitly setting them line by line I just want to run through a loop and set them dynamically. So to do this I've set up a dictionary that will contain the name of each literal, I can then run through those to add the data. This all works when I set up the dictionary by hand ie
Obviously the Text inserted would be dynamic too, but you get the idea, so all that works just fine, but I'd like to do the Add part of the dictionary dynamically as well and that's where I'm running into trouble, I want to do something like:
However this isn't valid, I can see why the "myReq"+(cnt+1) would not be valid as it's a String rather than a literal, but how can I convert the String to the Literal? What I am confused about is why the cnt on Add also isn't accepted, it is typed as an Int so to my mind it should be accepted
Is there a way to retrieve the client side ID for a model property similar to how the helpers like LabelFor etc generate the ID? For example, I have a model with a DateOfBirth property. I want to hook up that field to a jQuery DatePicker. Normally, I would hook up the date picker like this:
[Code]....
This works fine but hard codes the DateOfBirth property name. Ideally, I would like to use this:
[Code]....
Is this already available out of the box somewhere? I just created an extension method on the HtmlHelper class that does exactly this, but I wondered if there was already something built-in so I don't have to reinvent and test the wheel.
I have a web page with a form in the footer, when the user clicks submit in this form I submit their data and then return the view with the model with the line
[Code]....
but this means that the user is at the top of the page and cannot immediately see the validation errors or success message on that page as this information is posted in the footer section so is there a way to return a view with the model and a html fragment so the url is http://website/page#footer so that they can see this straight away without having to scroll down.
Also I have to assume the user has javascript turned off and the user could be using browsers ie6 and greater.
I would like to exclude one of model's property from the Html.EditorFor. I tried [HiddenInput(DisplayValue=false)] but it renders the property as an hidden input. This could potentially be a security problem. How can we completely exclude a field from Html.EditorFor?
i wrote mvc 2 application with target framework asp.net 4.0 but my hosting provider supports asp.net 3.5. then i set my project's target framework to 3.5 and i compiled successfully on localhost but when i run the application it says me:
Server Error in '/' application
Parser Error Message: Could not load type 'System.Web.Mvc.ViewPage<MvcApplication1.Models.xxx>'.
Source Error:
Line 1: <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MvcApplication1.Models.xxx>" %>
and visual studio can't see Model and html helpers on view pages.
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.
I have a textbox which I need to enter html code into (like < strong> or < em> for example).The trouble is this is causing an error writing this back to the database. A potentially dangerous Request.Form value was detected from the client (tbVOther="< strong>testIs there a way around this without turning off the request validation setting?
Currently, I am working with ASP.NET MVC1 and am still learning about Model Binding and how values from a View are passed back to the Controller / Model. Specifically, I want take an existing Model, create a Table and populate the Rows of the Table, allow the user to edit some fields and pass it back. In my example, I have a Class called "Ingredient" which has 4 public accessories: Name, Barcode, Amount, and Unit. [Code]....
Or is this not possible? (Basically, I'm trying to re-create a datagrid where certain fields are editable and certain are not...)
I have implemented a custom ModelMetadataProvider so that I can decorate my view models with some custom attributes and everything was working fine until I made use of a Partial View. The following code in my view works fine: -
<%: Html.DisplayFor(x => x.Results) %>
Results is a List which renders a custom display template and is also decorated with a custom attribute. Using breakpoints, after the above line and prior to the code within the custom display template, the overridden CreateMetadata method in my custom ModelMetadataProvider is invoked. If I look at the attributes collection parameter I can see that it does contain my custom attribute thus everything working as expected. However, if I replace the above with the following line of code in my view then it breaks: -
<% Html.RenderPartial("ApplicationSearchResults", Model.Results, new ViewDataDictionary()); %>
All the Partial View contains is: -
<%: Html.DisplayFor(x => x) %>
Again using breakpoints, after the above line and prior to the code within the custom display template, the overridden CreateMetadata method in my custom ModelMetadataProvider is invoked. But this time if I look at the attributes collection parameter my custom attribute is not there.
I have a page that shows the value of a property of my model. The value of that property is changed in the action-method of the controller (that recieves the model as a parameter). It turns out that this line of code:
<%= Html.TextBoxFor(m => m.Problem)%>
does not represent the value that it got in the action-method-code (just the value it got from the POST), but this does:
Normally I work in ASP Classic, and am still a bit green on ASP.Net MVC.
I have my model with its fields or entities (might not be the right word hence why not able to find if previously answered, forgive me), and some of these will have null values such as hyperlinks, email address, specific types of phone numbers, etc.
What I want to do is not write certain blocks of HTML within the foreach loop if a field is empty.
In ASP Classic, I would have written an If statement along the lines of:
<% If RS.field <> NULL then %>HTML with <%=RS.field %><% End If %> <% If RS.field2 <> NULL then %>HTML with <%=RS.field2 %><% End If %> ...
However, I don't know how to achieve the same result in ASP.Net MVC.In one of my current usages, a list of sellers returned for a specific set of search results, it runs through a foreach loop and returns the current HTML (in part):
Website: <a class="url" href="<%= seller.ContactWebsite %>" target="_blank" title="Visit the website for <%= seller.Name %>"><%= seller.ContactWebsite %></a><br />
So, if for example I have a field from the model, say seller.ContactWebsite, and this field was NULL, I would not want it to write this as part of the foreach loop.