MVC :: ViewData (Title) Accessible Only Current View?
Oct 26, 2010ViewData["Title"] is accessible only the current view? or it is possible to access other views also?
View 4 RepliesViewData["Title"] is accessible only the current view? or it is possible to access other views also?
View 4 Repliesmaking my first steps with asp.net mvc and I actually create a (very) small website.I have 1 controller : TasksController1 view : Tasks/Index.aspx1 Partial View : Tasks/AvailableSorting.ascx In my controller I have 2 methods :
[Code]....
In my Tasks/Index.aspx, I add my partial view (<% Html.RenderPartial("AvaliableSorting"); %>)
That sounds simple. But, It just doesn't work : the Index return a list of Task and the parial view (should) return a list of string.The index.aspx works perfectly, but the partial view doesn't get the right model ! he gets the model of the Index page (list of Task).
"When a partial view is instantiated, it gets its own copy of the ViewDataDictionary object that is available to the parent view. The partial view therefore has access to the data of the parent view. However, if the partial view updates the data, those updates affect only the partial view's ViewData object. The parent view's data is not changed."Is there a common way around this? For instance I have a View containing two Partial Views (User Controls) that source the same data from the Parents ViewData. The first Partial View is able to update (add/delete) certain data from the Parents View Data, however the second Partial View sources the same data but obviously isn't reflecting the changes owing to the above MSDN statement.
View 4 RepliesI have the following code in my post action method for Edit.
JobCardService.Update(viewData.JobCard);
var js = new JavaScriptSerializer();
ViewData["Notifications"] = js.Serialize(new {NoteificationType = "Success", Message = "The installtion was successfully updated"});
return RedirectToAction("Index");
However, on the client, ViewData is null/empty, i.e. this client code
var notifications = eval("<%= ViewData["Notifications"]%>");
renders as
var notifications = eval("");
I'm sure I'm doing something small wrong.
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?
I created a base Controller for the other Controllers to derrive from, and in that controller I overrode the OnActionExecuting method so that each time any Controller executes a method, I can run some code. In that code I added a value to ViewData, and in the Master View I want to either display certain items or not based on the value of the ViewData item set. The problem is, once I get to the Master View, the ViewData doesn't have anything in it. I am not sure what I'm doing wrong.
View 1 RepliesI like ASP.NET MVC, because I like to have direct access to my web site's structure. However there's 1 thing that I don't like.
In Ruby on Rails to send data from Controller to View is really easy:
# Get a user in controller
@user = User.first(:id => 1)
# Display him in a view
<%= @user.id %>
In ASP.NET MVC it's much harder
// Controller
User user = new User(1);
ViewData["user"] = user;
// View
<% User user = (MyNamespace.User)ViewData["user"]; %>
<%= user.Id %>
With this ViewData thing all benefits of static languages go away, and we waste time boxing/unboxing objects.
P.S. Don't tell me to use Model object, because this is also true for other variables like integer.
And another question:
I'm trying to implement a comfrtable access to data. Since I can't use LINQ to SQL as I use Postrgresql, I have to do it on my own. I'm tired of direct SQL queries, so I'm trying to implement something like this:
User user = User.Find("first_name" => "Bob");
I want to pass a message from the controller to a view using Viewdata. Here is my code:
public ActionResult Create(FormCollection createPage)
{
try
{
......................
ViewData["Message"] = "Success - rec added!!!!" ;
return RedirectToAction("Index");
}
catch (Exception e)
{
ViewData["Message"] = "Exception: " + e.ToString();
return RedirectToAction("Index");
}
On my View I have:
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>::><%: ViewData["Message"] %><::</h2>
<h3>==><%= ViewData["Message"] %><==</h3>
<p>
This is Index.aspx page in Controller folder
</p>
</asp:Content>
I am getting result with empty ViewData["Message"]
i need to pass multiple viewdata to a partial view from controller
View 7 Replieson the controller, i am passing my string array to the view using ViewData.
[Code]....
on the view, i cated the viewdata to string array, and made a select list.
[Code]....
but if i run the website, i get this error :
[Code]....
I'm trying to pass a list of data from the column CICodeID in my database where the currently logged in users name matches the UserId.
Here is my controller: [Code]....
And here is my view: [Code]....
This is the exception I'm getting at run time:"Cannot compare elements of type 'System.Linq.IQueryable`1'. Only primitive types (such as Int32, String, and Guid) and entity types are supported."
I want to popup new view when i click on hyper link on current view page... on that popup view i will ask user to add some values and save to database...when that popup child view get close my parent view will get refresh...
View 5 RepliesI have a view that displays all the records of my Roles table. I want to be able to click a Role record and have a list of users that pertain to that role displayed to the right of the Roles list. I'm sure I need to use a view model for this so I can get two sets of models in one view, but I'm not sure how to set up the view model.
Controller code:
[Code]....
Repository (userRep) code:
[Code]....
I can just as easily get the full user list with return db.Users;
So what method needs added to my repository and how should my view model look?
I need to store click to my website to a database, I have a sql2005 table :ID, CLICk, PAGETITLE, DATE.
i insert the click and date but i cant get the page title.
The code that inserts data is in masterpage.master.
i need to finde the current page where the clickocured than take the title
How to Display Icon IN title bar of Browser with title?
View 7 RepliesIn my application I have the following message:Object reference not set to an instance of an object.
@Html.DropDownList("Title",ViewData["PersonTitle"] as SelectList, Model.Person.Title)
The dropdownlist contains simple strings (person titles). When you select a title, that title should be returned to my model. Controller code:
ViewData["PersonTitle"] = new SelectList(new[] { "Dhr.", "Mevr." });
Why is this not working ? Edit: The purpose is to change
@Html.EditorFor(model => model.Person.Title)
into something like this
@Html.DropDownList("Title",ViewData["PersonTitle"] as SelectList, Model.Person.Title)
I have a controller's action and view page that uses a master page.
The master page has the html title section like:
<title>this is the page's title</html>
How can I access this section from within my controller's action (preferably) or my action's view page?
This is probably easy, although I cant seem to find the solution. In my view I have links in a partial view which acts as a menu.I need to apply an active class to the anchors if they are the page currently being viewed.
What I therefore need is a quick and simple method of checking the href of the link against the url of the page?
in my current project I was developing the application using MVC.. but the problem is I am new to this asp.net MVC..
I am tryhing to work out same look and feel in my current application ..
Is there any potential pitfall for using HttpContext.Current.CurrentHandler for runtime view access?
public static GetView<T>(T view) where T : IView
{
return HttpContext.Current.CurrentHandler as T;
}
im trying to get the current nameof the controller within a partial view (under /shared/).
ViewContext.RouteData.Values["Controller"].ToString() worked well for me. But not with a partial view.
I call the partial view from /Admin/Details. But im getting /Admin/Details/Admin as result. Maybe this is a bug? Here is my code:
[Code]....
Suppose i have a table
[Code]....
[Code]....
Is there a way to dynamically build an action link in a Master Page depeding on the View iteself.
For example, if I am at View1, I want the link in the Master PAge to point to an action A; whereas if I am on View 2, I want the link in the Master Page to point to an action B.
I am just wondering whether it is possible to return the name of the view an ascx control is currently being rendered in? Is there an object I can use to access the name?
Basically I want the control to dynamically set certain text within itself dependant on the view it is rendered within.
Quick question: is it possible to retrive a users certificate store i.e. list all of the client's Personal Certificates?
Just to be clear, I am talking about the certificates installed on the clients machine, not the servers. I have managed to list the server's certificates, but so far have been unsuccesful with the above.