Determine The Current Controller Action In An Mvc Sitemap?
Jul 13, 2010
I'm stuck with a problem of which I can not imagine I am the first person having to deal with it. Yet, Google comes up with nothing useful and neither does SO, so here I am. I'm using ASP.NET MVC1 with a sitemap. Using an html helper I create a navigation menu that highlights the current selected option in the Site.Master page. Common scenario and easily done by using:
foreach ( SiteMapNode subnode in node.ChildNodes) {
if (SiteMap.CurrentNode == subnode) { //got ourselves the current here }
}
That's all fine and dandy, however, my problem is that I have 1 controller with multiple actions. Consider the following scenario:
Accounts
* clients
* suppliers
* maintainance
They would all be in my AccountController, doing a search that is identical but with a different AccountTypeId value. When I read the SiteMap.CurrentNode value it gives me merely the info that I am using the AccountController, but not which action I called. I've tried a whole bunch of things but I can not get the action that was requested. I hope I gave enough info there to give you an idea of the scenario. If you need anything else, let me know.
View 2 Replies
Similar Messages:
Mar 15, 2010
I'm creating an ASP.NET MVC 2 (RTM) project that uses areas. The Index action of the Home controller of one area needs to use RenderAction to generate a sub-section of the page. The action called is also defined in the same Home controller. So the call should just be:
<% Html.RenderAction("List") %>
However, I get an exception:A public action method 'List' was not found on controller 'RareBridge.Web.Areas.Events.Controllers.HomeController'.
Note that I'm not in the "Events" area! I'm in a completely different area. If I remove the "Events" home controller, then the exception still occurs but names a different controller (still not the one I want it to call).
I've also tried providing the controller name and area to the RenderAction method, but the same exception occurs. What is going on here?
BTW: I am using Autofac as my IoC container
View 2 Replies
Mar 14, 2011
How do you get the current action / controller name in a controller or class?
i can't show it in my view but that's not what i want.
View 1 Replies
Mar 10, 2010
I have a user control in a modal popup for login form. It's ajax post so when login is successfull it doesn't update the rest of the page. Would like to just redirect the user to thier current page but not 100% on how to do this from the accountController.
View 4 Replies
Apr 29, 2010
Lets say I have a simple controller for ASP.NET MVC I want to test. I want to test that a controller action (Foo, in this case) simply returns a link to another action (Bar, in this case).How would you test TestController.Foo? (either the first or second link)
My implementation has the same link twice. One passes the url throw ViewData[]. This seems more testable to me, as I can check the ViewData collection returned from Foo(). Even this way though, I don't know how to validate the url itself without making dependencies on routing.The controller:
public class TestController : Controller
{
public ActionResult Foo()[code].....
View 1 Replies
Nov 12, 2010
I have a controller with a bunch of actions as such:
[Code]....
I'm looking for a way to find out which action invoked the other: for instance, when redirecting to Action1, I need to know whether it is coming from clicking "next" button at Action0 or clicking "back" button at Action2. This is is to avoid performing Action1 twice (My app is like a wizard, if I click back button at Action2, I don't want to execute Action1 again).
View 1 Replies
May 20, 2010
I'm trying to add file upload functionality to a page. I've got a form that posts the selected file to a controller with a 'savefile' method. But if I don't add a get version of 'savefile' I'll get a 404 error. Here is the form code which is presented on the Index page:
[Code]....
And here is the controller code:
[Code]....
Intuitively I don't think I should need a GET version of SaveFile but if omit it I get a 404 error when the form posts. Why should I need a GET version of SaveFile when all I want is to post a form and save the file?
View 4 Replies
Jan 24, 2011
I have a User entity and a department entity. I have a UserViewModel and DepartmentListModel which has List of departments.
UserViewModel has a property of type DepartmentListModel .
Now on user/create action I need to populate DepartmentListModel by calling DepartmentController's list action. List action returns populated DepartmentListViewModel.
From UserController how do I set DepartmentListModel ?
I tried doing so
[Code]....
But RedirectToAction returns RediretToRouteResult
View 7 Replies
Aug 27, 2010
The page I'm editing had three tabs, each tab contains a diffrent grid view which is populated by a search box with in the tab. Each row in the grid view has a check box. When a print button is pressed all records with a tick in the check box should be printed off. Then page then reloads but some of the content is missing due to the way the page has been coded. This is becuase some of the code is only called when the tab is clicked not on postback. Is there anyway that I change the following code so that it's called after postback? These are the functions that are causing the most problem.. I need them to be loaded for the correct tab on postback.. I can't do it for all three as the code takes forever to run in that case.
AddActionsToGridView(gvGlobal);
AddCheckboxesToGridView(gvGlobal);
{
if (tabconConsignments.ActiveTabIndex == 0)
{
dtGlobalIDConsignments = fGenerateTableSQL(astrPalletIDs, DateFrom, DateTo, ddlReqColDel.SelectedValue, "GlobalID", "", "");
//Global ID Tab
gvGlobal.DataSource = dtGlobalIDConsignments;
gvGlobal.DataBind();
//Actions
AddActionsToGridView(gvGlobal);
AddCheckboxesToGridView(gvGlobal);
}
else if (tabconConsignments.ActiveTabIndex == 1)
{
dtCreatedDateConsignments = fGenerateTableSQL(astrPalletIDs, DateFrom, DateTo, ddlReqColDel.SelectedValue, "CreatedDate", "", "");
//Created Date Tab
gvCreationDate.DataSource = dtCreatedDateConsignments;
gvCreationDate.DataBind();
tbCreationDateSearch.Text = "";
//Actions
AddActionsToGridView(gvCreationDate);
AddCheckboxesToGridView(gvCreationDate);
}
else if (tabconConsignments.ActiveTabIndex == 2)
{
dtAccountsConsignments = fGenerateTableSQL(astrPalletIDs, DateFrom, DateTo, ddlReqColDel.SelectedValue, "Account", "", "");
//Account Tab
gvAccount.DataSource = dtAccountsConsignments;
gvAccount.DataBind();
AddActionsToGridView(gvAccount);
AddCheckboxesToGridView(gvAccount);
}
if you want me to post any more code or any more info it's been a hard one for me to get my head around so I might of missed something out.
View 2 Replies
Feb 1, 2011
i just strated with asp.net mvc. My doubt is in a controller we use
public ActionResult Index()
{
return View();
}
so how a relevent view is returned for a particular controller.
View 4 Replies
Jan 22, 2012
I am playing with vb.net and have made a menu, with the menu.controller and the web.sitemap, its work fine but its the same hover image and the same background image im using.
I have an image with: 5 Textlink, 5 Hover Textlink, 5 Activ Textlink. Normal I can use this without the web.sitemap and menu.controller.
Code:
<div id="nav"><ul>
<li><a href="http://www.tester.com/" id="home">Home</a></li>
<li><a href="http://www.tester.com/about-me/" id="about" title="About Me">About Me</a></li>
<li><a href="http://www.tester.com/the-portfolio/" id="portfolio" title="View the Portfolio">View the Portfolio</a></li>
<li><a class="active" href="http://www.tester.com/the-blog/" id="blog" title="The Blog">The Blog</a></li>
<li><a href="http://www.tester.com/get-in-contact/" id="contact" title="Get in Contact">Get in Contact</a></li>
</ul></div>
And this CSS
Code:
#nav { position: absolute; top: 65px; right: 0pt; width: 487px; height: 61px; }
#nav ul { float: left; padding: 0pt; margin: 0pt; list-style: none outside none; }
#nav li { float: left; width: auto; }
#nav a { display: block; width: auto; text-indent: -9999px; height: 21px; background: url('nav.png') no-repeat scroll 0pt 0pt transparent; }
[Code] ....
My question is, how can I convert this, so i can use it in a menu.controller/web.sitemap, so i have 5 different image as background for the link and 5 different for the hover effect and then 5 different background image for the activelink/page.
View 3 Replies
Aug 2, 2010
I have a MasterPage, several content pages - each of the content pages have a UserControl.
In the MasterPage, I'm setting the Page.Title programmatically based on Page_Init "Request.UserAgent.Contains....", so that the content pages end up with different page titles based on this.
Each content page has its Title set to blank (Title=" "), but when the page renders, the pragmatically generated page title shows up in the browser tab.
In the UserControl code behind, I need to access the content page's (parent page) Page.Title value, and base on this, display some text:
If(Page.Title == "something")
{
Lable.Text = "something";
}
else if (Page.Title == "somethingElse")
{
lable.Text = "somethingElse";
}
However, my label remains blank when using this code. What is the way I need to determine the current Page.Title to what the MasterPage has set it as?
View 2 Replies
Aug 2, 2010
So, I have web apps with web.configs like so:
<authorization>
<deny users="?"/>
</authorization>
<location path="SomeUnsecuredPage.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
In other words, most pages require authentication and authorization, but some don't.
Then I have an IHttpModule that will be used by all the different applications. All I want to do is check if the current request is "secured" at all. If the page doesn't require authorization I don't want my IHttpModule to do anything at all. I am using FormsAuthentication and I assume that FormsAuthentication already has all of this information cached somewhere, doesn't it? Also, since this check will be running constantly so it has to be very quick.
I am currently subscribing to the HttpApplication.AuthorizeRequest, but surprisingly this event fires even for resources that allow anonymous access.
View 4 Replies
Sep 24, 2010
I have an edit application view, and it can be found at the following URL:
http://localhost:17262/Application/EditApplication/1
1 equals the application ID.
Also on the page I have a link that goes to another view to add an assistant for the application. I want to pass it the application ID so that the new assistant can be "linked" to this application. How would I get the value of 1 and add it to my action link? This is what I have in my HTML so far:
<%: Html.ActionLink("Add New Assistant", "Create", "Assistant", new { applicationID = "id" }, null) %>
View 1 Replies
Jul 9, 2010
If I have a controller with more than one action on, e.g. UserController, then I end up having that class require every dependency of every action. Is there a way I can have one controller per action and yet have the URLs appear the same way they currently do? e.g.MySite.com/User/Edit/1 would remap to User_EditController.Edit
View 1 Replies
Jan 12, 2011
I am not sure what is going on but even though I am invoking a different controller with action a particular FooController's Index action is being invoked all the time. The Global.asax file has setup the FooController to be the default controller.
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "FooController", action = "SomeAction", id = UrlParameter.Optional } // Parameter defaults
);
}
View 1 Replies
Dec 17, 2010
I have an aspx page Test.aspx. It handles requests like
Test.aspx?First=value1&Second=value2&third=value3
How can I use routing to redirect this url to
TestController/MyAction?First=value1&Second=value2&third=value3
I know I can create an aspx and perform redirect in it`s page load. But seems ugly and I think it can be done with some custom route.What I`ve tried was: this solution.but it didnt work for me. I remember, that Test.aspx should not be on a disk. I don`t have it, and routing is still not working.
View 1 Replies
Feb 2, 2010
In ASP.NET MVC 2, to secure controller action, i have created a class RequirePermission inherited from ActionFilterAttribute class. The controller action looks like
[Code]....
Now instead of making different attributes , I want to use RequirePermission attribute like
[RequirePermission(permissions=Permissions.CanView+","+Permissions.CanEdit)] so that i can use it for different scenerious. but the compiler throw the following error. An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type
View 1 Replies
Dec 21, 2010
I know I can use Html.ActionLink(...) from my view to render an anchor tag with a link to an action. I know I can call RedirectToAction(...) from the controller to immediately call another action. But what I'd like to do (and don't know how), is get an action link from within the controller. I am building up a breadcrumb and want the link to an action. So I don't want to immediately jump to the action (as with RedirectToAction), but just get what the link would be.
View 3 Replies
Dec 20, 2010
I am calling a Controller Action from a view, within that controller I need to invoke another Action which I will invoke to save the view to a network location as either HTML or Image.
How do I retrieve the URL to an Action from within a Controller. I need the actual URL, this means RedirectionToAction or View() wont work.
Why? I need to pass in a URL which will contain a call to a View. This view will be used to generate an image or HTML document using the System.Windows.Forms.WebBrowser.
.NET 3.5; C#; MVC 1;
I could do something like this, but its dirty ... well it leaves me with that dirty feeling.
using(Html.BeginForm("Action", "MyWorkflowController",
new {
MyId = "bla",
URLToGenerateImage = Url.Action("GenerateImage", "MyWorkflowController")
}))
View 2 Replies
Nov 2, 2010
I would like all actions of a controller to read some master page level values from the querystring and write those values to ViewState. How do I do this in ASP.NET MVC?
View 1 Replies
Mar 8, 2010
What's the correct way to get the controller name and action from an httpContext object? I can see the values in the debug, but I don't seem to be able to get to them in the object code?
View 13 Replies
Oct 19, 2010
I have this action on below
public ActionResult Edit(int id)
{
var mtn0120 = __context.GetMtn0120(id);
[code]...
View 4 Replies
Jan 22, 2010
A well-known benefit of MVC is its suitablility for Test Driven Development (TDD) because you can directly call your controller actions from your test methods.
How can you test the combination of a controller action with a ActionFilter attribute (using OnActionExecuted to modify the ActionResult returned by the Action)? If I just call the Action, it returns the ActionResult from the action, but the filter attribute is never invoked. I think maybe you can get it by Controller.ActionInvoker.InvokeAction(controllerContext, "ActionName"), but you have to accurately mock so much of the controllerContext to make it work that it's a real pain.
View 2 Replies
May 12, 2010
I am creating my first MVC application.I have a View named "Product".I want to use two asp.net control MENU and MULTIVIEW and on OnMenuItemClick event of MENU I want to select the View of MULTIVIEW. Please tell me how can I process asp.net control event in a MVC application.Can we mapp control event to Controller Action.
View 1 Replies