MVC :: Creating Custom HtmlHelper Method
Mar 9, 2011I have created a custom html helper as follow:
[Code]....
In my View, I am using it like this:
[Code]....
However, for some reason nothing gets rendered!
I have created a custom html helper as follow:
[Code]....
In my View, I am using it like this:
[Code]....
However, for some reason nothing gets rendered!
I am creating a custom control by inheriting a server control, say LinkButton. There are properties like "BorderColor" available in LinkButton. Let's say, I don't want this particular property to be available when I create an instance of the custom control.
I want to completely hide this particular property (I don't want to override it but disable it.)
My code is as follows:
[Code]....
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]....
i am just having a play with HtmlHelpers in MVC, very useful stuff and now i am trying to create one for dropdowns based on passing in a model ( any ) what the property is for the value and same for text.
so i have something like this:
[code]....
thats it
I saw this implemented somewhere but basically below I'm using the textbox HTMLHelper to draw a textbox with the id myID and default text 'text_goes_here'. I want to also add a class to thiis helper, i saw somewhere it implemented with new {@class =''} as a third parameter creating an object but im not sure exactly how its wrote
<%= Html.TextBox("myID", "text_goes_here") %>
I would like to know what the pros and cons are of creating an extension method v a partial view. From my understanding, htmlHelper extension methods are better as they enable one to unit test the view.
e.g. Assert.AreEqual(Html.Price(), "<td><tr><td>Price</td><td>4.50</td></tr>");
where the Price() method contains the presentation logic.
Since both the extension method and partial view are reusable, what then is the point / benefit of a partial view?
I am trying to convert some repetitive html into a user control. Here is the HTML :
[Code]....
And here is where I am slotting it in to my original HTML :
[Code]....
I need to do this dynamically, is there any way around this?
What are the advantages of extending HtmlHelper instead of creating a Custom Class.
f.e. <%= Html.Table(data) %> vs <%= CustomClass.Table(data) %>
When you render one of the "built in" html helpers (say "TextBoxFor") with ":" (so it's encoded) it renders fine.However if I render the following (a custom file input helper) with ":", the markup are displayed.I understand why. Just don't know how to prevent this (no, I want to stay with ":" and not use "=")(I looked at the source code for the built in ones, but can't see what I'm missing: ttp://aspnet.codeplex.com/SourceControl/changeset/view/23011#288010 )
[Code]....
In the new ReSharper 5.0 there is some MVC specific features for highlighting View and Controllers in views when you type them as strings.
So with ReSharper the string below called "ViewName" will get highlighted and clickable for navigation.
Html.RenderPartial("ViewName", model);
My question is if its possible to write custom patterns for custom extension methods. In my case i have a extension method called:
Html.RenderPartialIf(myCondition, "ViewName", model);
But when I do this ReSharper wont find my view. So can it be done?
I have a view that is strongly typed and its model is of type LogOnModel. That LogOnModel has anotated properties like this one:
[Required(ErrorMessage = "Please enter your password")]
[DataType(DataType.Password)]
[Display(Name = "Password", Description = "Your secreet password")]
public string Password { get; set; }
All of them has Display anotation with Display.Descripion property set. I want to create HtmlHelper extension method that will output <span> containg the value of Display.Description property. So for example if I called my extension method DescriptionFor than this code:
<%: Html.DescriptionFor(m => m.Password) %>
should produce following html: <span>Your secreet password</span>
i have defined a dropdown list in the controller
[Code]....
then i can show this dropdownlist in my "about" view <%=Html.DropDownList("a") %>.
BUT, now i want to define this dropdown list at my back end. what i want to do is to create a new "Helper".cs file in my project, and create a function within it. so every time if i want to show this dropdown list, i can just simply call this function instead of Add new SelectListItems one by one. is there anyone tell me how to do it?? and is it a good way to create a dropdownlist at the back end?
How to create a custom control and REGISTER IT AND WHERE TO INSERT A CODE IN IT FOR AN EXISTING WEB SITE?
View 4 RepliesI have created my own custom role provider class "SGI_RoleProvider" and configured properly.
Everything is working fine.
Suppose that I have added a public method say "SayHello()", then how can i call that. Because if i am using Roles then the method is not displayed. If i am forcefully using that Roles.SayHello() then compiler gives the error.
how can i call this. Because creating a new instance of SGI_RoleProvider is meaningless.
I added the extender and when i tried to add the method this message poped up; Cannot create page method "GetCompletionList" because no Code Behind or codefile was found.
View 4 RepliesI have created a custom control as can be seen below. this custom control will be used by alot of web form. The question is how to override CheckAllData method in each webform, so i can write my own checking in each webform.
[Code]....
I am creating custom server control. I have two classes in project. One is main class that render control and another will be used to render content based on condition.I just want to know how to render content from other classes in main class.For example. This isjust an example.My main class code
[Code]....
My TopLeftPane class
[Code]....
My page code on page load event
[Code]....
When I run the page, Header title always getting null. This is a just sample code. I will have more than 20 classes so I dont want to write a code in main class to render whole control.I hope all of you understand my problem.
I have a form that I need in various parts of my website.
User's enter their address, and submit a form that saves the address.
I want to wrap this up so I can re-use it since I need this exact same functionaility in a few places.
I am thinking to do this:
create a partial view with the form, but have the action location url passed in as a parameter. create a seperate class/method that will handle the server side validation (UI has its own validation using jquery already)saving/editing is already handled in the db layer.
I am creating a dynamic <asp:Table> based on a user's selection from a DropDownList. The number of columns and rows in the table depends on the user's choice from the DropDown.
The final two columns in each row needs to contain an Edit and Delete button. I am able to create these buttons programmatically. However, I am unable to get the click event to fire.
After researching this, it appears to be the case that my dynamic Web controls need to be created in the page Init method.
However, I am unable to do this as I do not know how many table rows, columns and buttons to create, until after the user has made a selection from a DropdownList.
I would be be very grateful for some tips on the correct way to create and enable the events for my dynamic buttons, in this scenario.
Here is a brief outline of how the program currently works (this is just a brief outline I quickly sketched, small details may be wrong!):
[Code]....
[Code]....
I am woking on a MVC project which require me to put all controllers, models and views into a folder called Mvc instead of the project root, I created a custom viewengine, here is the code:
[Code]....
My Application_Start:
[Code]....
It does not work, when I request [URL], I got: The view 'Index' or its master could not be found. The following locations were searched:
~/Mvc/Views/Index.aspx
~/Mvc/Views/Index.ascx
~/Mvc/Views/Shared/Index.aspx
~/Mvc/Views/Shared/Index.ascx
I expect the custom viewengine to find the view at: ~/Mvc/Views/Home/Index.aspx
I have an existing web application that uses EF and POCO objects. I want to improve the client experience by exposing some of my objects through WCF(JSON). I have this working fine but where I am unsure is how to handle derived objects(not sure if that is the correct term) or IEnumerable anonymous objects if you will.
Let's say I have 3 tables structured like so:
Templates
ID
Template
Groups
ID
Group
Instances
ID
TemplateID
GroupID
This is obviously a one-to-many type relationship. I have my navigation properties setup correctly and getting strongly typed object properties works great. However, how do I send serialized anonymous type object(s) over the wire. Like an object that sends all instances that are equal to groupid=1 and include the names of the template and the object.Am I missing something or do I have to create another class object for WCF that would look like this:
WCF Object
InstanceID
TemplateID
TemplateName
GroupID
GroupName
I guess I could alter my tables to account for this but that seems wrong too. I know that IEnumerable objects can't be serialized and I know that throw away objects are probably not the way to go either. I want to do this the right way but I am not sure how to go about it.
I thought about creating a custom AuthorizeAttribute that will prevent logged in users calling a action ( [UnAuthorized] so to speak)
Tried creating a custom AuthorizeAttribute and override the AuthorizeCore method, but not sure this is the right approach.
(does not work anyhow...get an error telling me "no suitable method found to override")
[Code]....
What is the best way to go about creating a custom framework for asp.net?
We have several enterprise level asp.net ecommerce websites all running from completely seperate code bases. What I'd like to do is standardise the common components (session management/urlrewriting/surge control etc) and integrate them into the .net framework at the highest level possible and in a way that my developers cannot (easily) make changes.
I've considered creating a common assembly and just referencing that in each of the solutions but this still relies on the developer wiring up the httphandlers/modules and implementing the basepage design pattern for each individual page/masterpage.
I have a Results.aspx page that displays the resulting records queried using a SqlDataSource object via a ListView. I want to add a "View" button that will appear next to each record, and when clicked will take me to a separate page that will display details about that record. How do I accomplish this?
Edit
I have tried what you said, citronas and here's what I've come up with:
[Code]....
Unfortunately nothing actually happens...am I missing something?
Edit -- Fixed
I was missing something! I had CommandName equal to my method name instead of OnCommand. I took out CommandName, kept the argument bit and replaced CommandName with OnCommand. Everything works now, but what would I ever need CommandName for?
I don't know is this correct forum for asking this question or not, but i need it very urgently ,please help me out.I need to create a website setup with the following actions.1. Primarily it should first check whether IIS is installed in local machine or not, if IIS is not installed then it should give an Error Message.2. If IIS is present it should Start Installing with all the Content Files and Web Files and Class Files.3. After Installing all the files in IIS it should ask for the Connection String i.e. from where and which database should be taken as connection string, and it should set this connection string in web.config.4. After all this process it should ask for default page to be opened i.e. Which page should be started as first page.5. Then it should automatically open that website with default set page in browser , to check whether it is working fine or not.
View 3 Replies