I have created a view that should act as a master page(_MasterAccount.cshtml) with the following code:
<h1>TEST!!!!</h1>
#RenderBody()
<h1>TEST!!!!</h1>
I tried to have another view reference it using the following code:
#{
ViewBag.Title = "My account - Options";
Layout = "~/Views/Shared/_MasterAccount.cshtml";
}
I am using RAZOR and there isn't a _viewstart.cshtml in the project
For some reason the layout is being ignored. It doesn't even throw an exception when I put in a non existing path.
Please note that there is already a "main" master page and mine is acting as a nested master page for specific set of pages.
The site has been developed by someone else, so I am suspecting that there is a piece of code that is overloading the layout property somehow. Thing is, I don't know where to look.
Please let me know if additional information is required.
Found the solution in 2 answers from stack overflow.
A view engine was implemented in the system to locate the master pages, therefore the layout field was being ingored. As per this answer.
Therefore to implement the master within the master I opted for this solution although it looks a bit messy.
Related
I have created a view with several pages. As it is displayed to me with the debug mode, I can also use the view:
views-view-fields--foobar.html.twig
Overwrite With me the whole then looks as follows:
views-view-fields--nd-portfolio-filter.html.twig
Now I would like to overwrite a certain page of my view. I can't find anything suitable in debug mode.
According to https://www.drupal.org/docs/8/theming/twig/twig-template-naming-conventions it should work according to the following pattern:
views-view-fields--foobar--page.html.twig
according to this logic it should look like this with me then as follows:
views-view-fields--nd-portfolio-filter--theaterfotos.html.twig
Unfortunately, that doesn't work. "theaterfotos" is the system name of the page of my view.
Do I have a thought error now? Would be grateful for any help.
Thnx Bavra
As of my understanding of your question you want to apply to the template on a specific page of view.
Your logic is right but I think your name was incorrect it should be in this format
[base template name]--[view machine name]--[view display id].html.twig
on your case, it should be like below because views machine name not using "-"(dash in between) on lowercase and underscores
views-view-fields--nd_portfolio_filter--theaterfotos.html.twig
you should try this and clear the cache of drupal. Hope this will helps you
Thanks
I have just setup a new Sitecore 6.6 MVC application and all is going well.
I need a breadcrumb trail and found this:
http://nuget.org/packages/MvcSiteMapProvider
I have set it up and it renders the
#Html.MvcSiteMap().SiteMap() correctly
but
it doesn't render anything for bread crumb:
#Html.MvcSiteMap().SiteMapPath()
If I debug into the SiteMapPathHelperModel.cshtml I can see that there are no nodes in my Model.
First question is, can and should I use:
http://nuget.org/packages/MvcSiteMapProvider
in MVC with Sitecore.
Second question is:
If you think it is ok to use this, do you have any idea why it doesnt render my bread crumb but it renders the menu?
I have never used SiteCore, so I don't know how it is set up exactly. However, MvcSiteMapProvider is flexible and can accommodate many scenarios.
The SiteMapPath() will render if you navigate to one of the URLs that are registered in the Mvc.sitemap XML file. Note that in most cases you need to register them with a controller and action attribute set. The whole principle is based on matching a unique node within the sitemap to a route, so you need to ensure that both the node and the route of the request have matching RouteValues dictionaries.
See the MvcMusicStore demo in the source code download if you need to see a working implementation to get started, or have a look at this tutorial:
http://www.shiningtreasures.com/post/2013/08/07/MvcSiteMapProvider-40-a-test-drive
I am working on my first Windows 8 Metro app. I have worked a LOT with Silverlight and I am familiar with the Metro concepts. My challenge is, I know I want to create a "Section" page as defined here: http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh761500.aspx. Or, to put it another way, like the sample "Finance" app where "TODAY", "INDICES", "NEWS", etc. represent sections. But, I can't figure out how a "Section" page is defined in XAML.
I was expecting it to be similar to a tab control where each section is defined as a child of the parent control in the "Items" collection. However, I can't seem to find a solid example. Does anyone know an example they can point me to? Or a walkthrough online?
Thank you!
Try using a frame in your "master" page, and then adding other pages to that frame. A section in this paradigm is just a normal page. Most of the samples here in MSDN uses this type of design, with a master page displaying different sections, based on a selected item in a listview.
I've been moving a fairly new project from ViewPages to Razor today, and all seems to be going well. Except I'm trying to use Html.Action to render a user control and it won't render anything.
So I have a Shared/_Layout.cshtml file which is referenced in Home/Index.cshtml
Index.cshtml has the following:
<article>
#Html.Action("LatestBlogsMainPanelWidget", "Blogs")
...
</article>
I've put traps in the BlogsController, so I know that's being requested. I also know that a model is being returned, that the LatestBlogsMainPanelWidget is being found by the view engine, and even some dummy Razor syntax code is being run:
#{
var s = "hello";
}
but the plain html in this file isn't making it to the browser. I've tried other (previously working) partials too and they won't appear either (view source on the page confirms it's not there).
I've also tried substituting for
#{ Html.RenderAction(...); } without success. HTML either side of the #Html.Action is appearing, so I know Index.cshtml is displaying properly.
Even more strangely the _Layout file also has Html.Action commands and they do appear fine.
I'm really not sure what else to check, or how to confirm that the pipeline is getting the HTML. Can anyone help at all?
Thanks!
Put a Layout = null on the partial view and it will work fine.
Try this:
#{Html.RenderAction("LatestBlogsMainPanelWidget", "Blogs");}
The brain is a funny thing, and despite spending several hours on this yesterday, it took my dog waking me up in the middle of the night for a wee for my subconscious to stumble upon the answer.
If this had anyone else stumped, I'm not surprised. I hadn't mentioned because it hadn't dawned on me that I was using a partial-level caching system similar to one designed by Steve Sanderson. It suddenly struck me that this could be the cause, since to the best of my knowledge Razor pages go through far less pipeline processing than WebForm pages. The caching filter is probably not doing what it needs to do, or at the right time.
I've confirmed that commenting out the OutputCache filter on the Actions in question has fixed the problem.
I've no idea if this issue is true of the page-level caching as it's not something I find useful.
While searching solutions for this issue, I have find out three measure issues for not proper rendering of Html.Action and Html.RenderAction. Please verify have you done below things properly or not.
In your PartialView or View you have defined #{Layout = null;}.
Use return PartialView instead of View .
Decorate your action with [ChildActionOnly] attributes.
I hope by applying above all steps you can solve your issues.
I have a TabContainer inside a data bound FormView (to present the information by category ex: Client Bio data, health history, financial details...). The Update and Insert of the formView doesn't work (posting NULL values to the database) - I guess the FormView cannot find the TextBoxes inside the tab container's tab panels.
Some of the forums say that it's because of the TabContainer's implementation (by design) of "INamingContainer", and a hack is to take control of the TabContainer's
source code (ajax ctl toolkit's source code) and remove the "INamingContainer" interface from it... Too complicated to my taste .. I'm kinda lost.
Well is there a straight forward and better way to fix this? I'm dazzled to see that the toolkit has failed to implement this basic functionnality as for most developper ordering info (tab control) with formview is a common need.
Thanks in advance,
Jeewai
Answering my own thread... I got some great inside from the asp.net forum and decided to post the solution here: Reproducing the explanation that helped me out:
Hope that will clear out some questions to other users who may encounter the same issue.
Best,
JY
Blockquote
Hi JY,
The short answer is that when a Bind statement is compiled, there are some limitations on extracting values for an insert/update. If the controls within the FormView are then within another Naming Container (TabContainer and TabPanel are both naming containers), then the compiler can't resolve how to extract the value from the TextBox. I have a more detailed discussion of this on my blog at http://www.aarongoldenthal.com/post/2009/03/15/ASPNET-Databinding-Bind()-Method-Dissected.aspx.
To get around this, you'll need to extract the values manually, something like:
protected void FormView1_ItemUpdating(object sender, FormViewUpdateEventArgs e)
{
// Get references to the controls
TextBox LastNameTextBox= FormView1.FindControl("TabContainer1").FindControl("TabPanel1").FindControl("LastNameTextBox") as TextBox;
// Set update parameters in datasource
ObjectDataSource1.UpdateParameters["LastName"].DefaultValue = LastNameTextBox.Text;
}
Since FindControl only searches the current naming container, you'll need to dig through each naming container (FormView, TabContainer, and TabPanel) to get to the TextBox.
Hope that helps.
Aaron
Blockquote