MVC :: Runtime Sitemap Construction For Each Index() ActionMethod - Custom Attribute?
Jun 21, 2010
Recently, I wrote code that dynamically builds a menu / navbar for my site that uses Reflection upon the [Authorize(Roles="")] attribute to determine what Controllers and ActionMethods should be shown to the user. And it came out really well. See this post for the details on how I did it: [URL]
The next step that I've been thinking about is when the user clicks on the "Controller" listing, it takes the user to the Index page. (eg. [URL] ) Which is perfectly fine, but I was thinking that it would be nice to also have this Index page for each controller dynamically constructed based on the user's roles / permissions. For example, if the Index page from XYZ-Controller might look like:
XYZ-Controller Index
SomeMethod1 -- This method tweaks your widgets
SomeMethod2 -- This method unwinds your widgets, re-orders thems, and then re-winds them, but only on Tuesdays.
SomeMethod3 -- This method will delete some or all of your widgets and then you'll be sad.
I currently use Reflection to iterate thru all my Controllers and all the ActionMethods in each controller. I've been pondering the best way to store the Description of each ActionMethod. (Like, "This method tweaks your widgets.") Do I make my own Attribute called, say, Description which I would use to decorate ActionMethods with. For example it might look like this: [Description("This method tweaks your widgets")]
View 2 Replies
Similar Messages:
May 7, 2015
I am using this article for hide and show the menu in specific user only. My question is on how can I Add, Delete and View the Roles in specific menu.
View 1 Replies
Jun 3, 2010
I managed to dynamically add nodes to my sitemap at runtime, but the changes are not reflected in my menu (which is populating from the sitemap) unless I restart the application (restart the webserver). Is there a way to trigger the event of regenerating the sitemap, and thus triggering the menu to repopulate with the new nodes?
View 10 Replies
May 13, 2010
I was referred here by MSDN forums hope this is the right place - I have a custom control (:WebControl) that renders web.sitemap in a specific way. While it runs error free and produces the expected result, at Design-Time it complains
[Code]....
and have tried the SiteMapDataProvider Tag with and without the SiteMapProvider
attribute.Does anybody have (a) any experience with this, or (b) any suggestions as to how to track down the problem?
View 3 Replies
Dec 13, 2010
I want to add/edit available siteMap providers in web.config file from code behind.
I am using the siteMap providers currently in the application web.config in a format given below:
<siteMap>
<providers>
<add siteMapFile="~/App_Themes/MyAppDefault/MySiteMap.sitemap"
name="MyAppDefault" type="System.Web.XmlSiteMapProvider" />
</providers>
</siteMap>
This is allowing my application user to show up a different Site Map as and when the theme is changed.
But when I tried to do the same with the following code I faced with an issue.
configuration = WebConfigurationManager.OpenWebConfiguration("~")
section = CType(configuration.GetSection("system.web/siteMap"), SiteMapSection)
Dim provider As New ProviderSettings()
If Not section Is Nothing Then
provider.Name = txtError.Text
provider.Type = "System.Web.XmlSiteMapProvider"
section.Providers.Add(provider)
configuration.Save()
End If
This code is not allowing a provider.siteMapFile property (provideer is the ProviderSettings object).
As well the maximum possible way I can add a new SiteMap provider in web.config is as follows
<siteMap>
<providers>
<add name="MyAppCustom" type="System.Web.XmlSiteMapProvider" />
</providers>
</siteMap>
If anybody can suggest a way for me to add/edit the 'siteMapFile' attribute of the provider.
View 1 Replies
Apr 22, 2010
I have a CMS that allows an administrator to add/create pages for his website.
When a page is created a SiteMapNode is added to the web.sitemap file with the an url , title and resourceKey.
Now I wish to add a resourcekey to the appropriate web.sitemap.resx file(located in App_GlobalResources).
I have tried many different ways :
- using XMLDocument load/save => says I don't have access to write to that resource file
- ResourceReader says the source stream is not valid.
View 4 Replies
Apr 18, 2010
I want to have site.sitemap file that is build runtime from my sql database.
View 2 Replies
Apr 20, 2010
I have a menu of products which are created at runtime from the database and populated into menu control.
But i need to also create a sitemap and display when the relevant menu or submenu item is selected
View 1 Replies
Oct 19, 2010
I'm basically trying to get a div containing a loading gif to show on my page at runtime. I call it from a button click event as well as in the code flow. It was working before I used the AJAX Update Panels. I've since taken them out as they were causing issues with RegisterClientScriptBlock. By the way, does commenting out the AJAX Markup like this...
[Code]....
...remove them from influence?
[Code]....
My code is initiated from the button click event.
[Code]....
The code that does the work goes like this...
[Code]....
View 5 Replies
Jan 17, 2010
I'm building a custom web control with a public property which I only want to be available in design time (i.e. make it unavailable in code behind). The DesignOnly attribute promises to do just that, but when I set [DesignOnly(true)] it has no noticeable effect whatsoever:
[Bindable(true)]
[Category("Appearance")]
[DefaultValue(null)]
[Localizable(false)]
[DesignOnly(true)]
public string MyProp
{
get
{
return ViewState["MyProp"] as string;
}
set
{
ViewState["MyProp"] = value;
}
}
The property still appears in code behind IntelliSense. Setting a value to it in code behind works. In these respects, the behavior is just as if the attribute had never been set. And I've cleaned and rebuilt the complete solution. Twice.
View 1 Replies
Apr 18, 2010
I have a footer that I am adding to a masterpage. Within this footer, if constructs menus based on the Current Node of the sitemap, however the sitemap is coming back as null. how to fix this issue.
View 2 Replies
May 14, 2010
I'm only a newcomer to ASP.NET MVC and am not sure how to achieve a certain task the "right way".
Essentially, I store the logged in userId in HttpContext.User.Identity and have written an EnhancedAuthorizeAttribute to perform some custom authorization.
In the overriden OnAuthorization method, my domain model hits the database to ensure the current user id can access the passed in routeValue "BatchCode". The prototype is:
ReviewGroup GetReviewGroupFromBatchCode(string batchCode);
It will return null if the user can't access the ReviewGroup and the OnAuthorization then denies access.
Now, I know the decorated action method will only get executed if OnAuthorization passes, but I don't want to hit the database a second time to get the ReviewGroup again.
I am thinking of storing the ReviewGroup in HttpContext.Items["reviewGroup"] and accessing this from the controller at the moment.
View 3 Replies
Mar 21, 2010
I have seen a lot of examples posted on how to create a Custom SiteMap Provider which is directly linked to the Business Logic in the Presentation Layer, however, I would like to write a Custom SiteMap Provider which inherits from StaticSiteMapProvider and
is driven by the database. In addition, I would like to expose all of this logic behind WCF Services.
Are there any samples on how to implement a Custom SiteMap Provider over WCF Services since I am having a hard time trying to figure out exactly how to put a solution following this architectural pattern together.
View 1 Replies
Aug 4, 2010
i need information of how to create Query Disambiguations 0r Query Construction from Xml text to text box.
for example: i type " oracle" in one text box oracle detail wanna below showing menu bar method....
oracle
company >l oracle
software l oracle corporation
Database l
View 1 Replies
Jul 27, 2010
http://localhost/i have windows 2003 enterprise on which i have installed IIS and
aspnet_regiis -ii have configured a web application thr' IIS virtual directorybut when i type http://localhost/ iget Under ConstructionThe site you are trying to view does not currently have a default page. It may be in the process of being upgraded and configured.Please try this site again later. If you still experience the problem, try contacting the Web site administrator.If you are the Web site administrator and feel you have received this message in error, please see "Enabling and Disabling Dynamic Content" in IIS Help.lick Start, and then click Run. In the Open text box, type inetmgr. IIS Manager appears.
From the Help menu, click Help Topics. Click Internet Information Services.whts wrong . is IIS proper . my web sit eis not getting displayed. its just says LOADIng and nothing comes
View 7 Replies
Nov 17, 2010
I'm trying to get the current action method by this way.
ActionDescriptor actionDescriptor = filterContext.ActionDescriptor;
string actionName = actionDescriptor.ActionName;
var controllerType = filterContext.Controller.GetType();
var actionMethod = controllerType.GetMethod(actionName);
But if there're two action method with the same name, the AmbiguousMatchException will occur there. Without the ActionMethod property, how can I get the current action method now?
View 5 Replies
Mar 8, 2011
Supposing I have a user control like this <MyTag:MyWidget runat="server" /> I am wondering if I can do something like <MyTag:MyWidget runat="server" MemberHeight="400" PublicHeight="200" /> So that in MyWidget.ascx I can have <div height="<%=IsLoggedIn ? MemberHeight : PublicHeight%>"> or something like that...? Because I want the height to vary in each page that is using this widget.
View 2 Replies
Mar 2, 2010
I want to create a single custom authorization attribute to be added to controller actions that require authenticated users.
My first shot at this, so I may have it all wrong
Got 3 Roles which corresponds to 3 Areas in my application (Client app, so I'll just call them RoleOne, RoleTwo, RoleThree and AreaOne, AreaTwo, AreaThree).
Each area have similiar (to a point) views and actions, like Sign Up, Area specific home, etc.
In the attribute I want to determine the current area, controller and action. Then I just add code like:
If not logged in, and in AreaOne, go to AreaOne Signup (etc)If logged in as RoleOne, and AreaOne Home is requested, go there, but if AreaTwo Home is requested ,go to AreaTwo Signup So in my attribute class I need to determine the current area, controller and action, and see what kind of user we have logged in (if any)
Using ActionExecutingContext it seems I can determine the contoller and action method names, however I cannot find the Area name, and altered the attribute to be called like this:
[Code]....
View 4 Replies
Nov 7, 2010
I am trying to create a minimum length validation attribute which will force users to enter the specified minimum amount of characters into a textbox
public sealed class MinimumLengthAttribute : ValidationAttribute
{
public int MinLength { get; set; }
public MinimumLengthAttribute(int minLength)
{
MinLength = minLength;
}
public override bool IsValid(object value)
{
if (value == null)
{
return true;
}
string valueAsString = value as string;
return (valueAsString != null && valueAsString.Length >= MinLength);
}
}
In the constructor of the MinimumLengthAttribute I would like to set the error message as follows:
ErrorMessage = "{0} must be atleast {1} characters long"
How can I get the property's display name so that I can populate the {0} placeholder?
View 1 Replies
Jun 6, 2010
Is it possible to access a parent class from within an attribute.
For example I would like to create a DropDownListAttribute which can be applied to a property of a viewmodel class in MVC and then create a drop down list from an editor template. I am following a similar line as Kazi Manzur Rashid here.
He adds the collection of categories into viewdata and retrieves them using the key supplied to the attribute.
I would like to do something like the below,
public ExampleDropDownViewModel {
public IEnumerable<SelectListItem> Categories {get;set;}
[DropDownList("Categories")]
public int CategoryID { get;set; }
}
The attribute takes the name of the property containing the collection to bind to. I can't figure out how to access a property on the parent class of the attribute. Does anyone know how to do this?
View 2 Replies
Jan 20, 2010
I've create a custom attribute for my web pages... In the base page class I've created I'm trying to pull if that attribute has been set. Unfortunately it does not come back as part of the GetCustomAttributes function. Only if I explicitly use the typeof(myclass) to create the class. I have a feeling it's due to how asp.net classes are generated.
[Code]....
View 1 Replies
Jul 22, 2010
I have some code which is rendering some custom attributes of Hidden Control (without runat=server).
Something like,
And I have a lot of these hidden elements on my form.
When I submit the form, I am looping through a set of ids, say 1200 to 1250, so I will read controls based on that, and also hidden with Request.Form["hdn "]
Now problem is, as we know we get value attribute from form when we do Request.Form["id"] for hidden, I want to read my custom attributes from hidden element. Is there any way? Note that, I can not touch the rendering part here.
View 1 Replies
Jan 21, 2010
I have a class containing the following ConfigurationSection:
namespace DummyConsole {
class TestingComponentSettings: ConfigurationSection {
[ConfigurationProperty("waitForTimeSeconds", IsRequired=true)]
[IntegerValidator(MinValue = 1, MaxValue = 100, ExcludeRange = false)]
[Code]....
The value for the property 'waitForTimeSeconds' is not valid. The error is: The value must be inside the range 1-100.
If I change the IntegerValidator to have an ExcludeRage = true, I (obviously) get:
ConfigurationErrorsException was unhandled
The value for the property 'waitForTimeSeconds' is not valid. The error is: The value must not be in the range 1-100
If I then change the value of the property in the .config to a number higher than 100, it works.
If I change the validator to just have a MaxValue of 100 it works, but will also accept a value of -1.
Is it possible to use the IntegerValidatorAttribute with a range like this?
Edit to add
Confirmed as an issue by Microsoft.
View 1 Replies
Jun 12, 2012
To enable the details of this specific error message to be viewable on remote machines, please create a <customErrors> tag within a "web.config" configuration file located in the root directory of the current web application. This <customErrors> tag should then have its "mode" attribute set to "Off".
I got this error at time of running ma published website but only for 1page this error occurred how it can be solved.
View 1 Replies
Aug 24, 2010
Normally, unknown attributes of a webcontrol are passed through to to the rendered element in the browser. So the following works.
<asp:label runat="server" Text="Label Text" helpId="101" />
However, if you use a namespaced attribute like the following
<asp:label runat="server" Text="Label Text" myNs:helpId="101" /></div>
The attribute is not rendered to the client, even when the custom namespace is declared in the html element like: <html xmlns= [URL] Does anyone know of a way to get this to render to the client, without having to use a custom control. A module or other globally "pluggable" solution would be acceptable.
View 1 Replies