Different templates for different categories/Pages - razor

knows anyone an article I can implement a template-system in my ASP.NET MVC 4 application?
Like many other websites, my own has many different categories and for each should use there own template.
The color circle is the template (like musictemplate_layout.cshtml) and ContentPlaceHolder123 has always the same content.
Best regards,
Patrik

Create different Views as your specific templates like bellow:
Use different layouts by defining at the top of each page like bellow:
#{
Layout = "~/Views/Shared/Layout1.cshtml";
}
Also, you can have more levels of Layouts, according to your interface plans. You can use layouts dynamically by different factors, like UserAgent or ... by Placing string variable in front of 'Layout' for more adoptable or intelligent results.

Related

Can I use multiple layouts for one view?

The main layout that I want to use for all views is connected inside _ViewStart. But I would like to use second layout for some views. How can I do this?
A page can have only one layout. From your description, I think you can just combine the two layouts as a new layout, then use it for some views.
In addition, I think Partial View can also meet your needs, you can have a reference.

Can I re-use code in a partial in Razor (Umbraco 8)?

I have multiple partial views with markup. For styling the markup of these views I have several properties like color, background image etc. that can be set in Umbraco.
I would like to create a single piece of code that handles all styling, and can be used in all partial views (the variables should be available in the 'parent' view).
How can I add or embed this piece code to the views? I don't want to copypaste the code to each view because of maintainability.
Preferably, I want the code to be in a Razor view, not in code behind.
I wrote a blog post about this for skrift last year.
https://skrift.io/issues/there-s-more-than-one-way-to-cook-an-egg/
I think you will want to use option 3
Kind regards
Paul

Django - same html, different views

I want to have a block oh html across all my templates (like a sidebar for basic form submissions), which is easily implemented on the html files by using blocks.
However, my doubt is not about the repetitions across templates, but across views. Since the functionality will be the same across all templates, it would be really boring (and bad programming) to define the request handling (that would come from that side bar's submissions) for every view I have! How should I handle this? Should (and can) I make a view dedicated to handling that "all-around" part of the template?
Any advices are welcome,
Thanks in advance
Daniel is refering to an Inclusion Tag
Basically, a custom template tag is used for scenarios like yours (... code reusability amongs many other advantages)
Also this post might be helpful: Django Custom Inclusion Tags
Another approach could be using template inheritance - create a base template, which defines the layout, and override the blocks of code that would change for specific views.
Here is an example of template inheritance: https://docs.djangoproject.com/en/dev/topics/templates/#template-inheritance
Use a custom template tag - probably an inclusion tag.

Template for display fields in two columns instead of one columns in MVC 3 Razor

The Details template of MVC 3 returned a view use <fieldset> to display elements that represent all fields in one column. But I need to show elements or fields of a model in two or more columns. Is there any good template for this? what is your suggestion?
There's nothing specific about MVC here. This is just plain old html and css. I suggest getting a good book on HTML and CSS, and these sorts of things will be clear to you.
One of many many many ways you could do it:
http://www.gethifi.com/blog/html-forms-the-right-ways
One option you have is using editor templates for MVC, which allow you to take control of the how html rendering for a model is generated. Here's a blog post with an example
Using EditorTemplates in MVC 3
What you are looking for is modifying the Scaffolding Template that generated that view.
Or other option could be doing that manually, checking the best way to "display" each of your models.

Offline HTML templating

I'm designing a simple website with no dynamic content that I want to be light and portable — no PHP or other server-side scripting needed, or wanted. I'm running into a question that I've had a few times before.
I'd love to be able to write common elements (head, foot, navigation) once and write the individual pages on the site with content only, then run this mysterious utility to compile everything it into a set of HTML files ready for uploading. A page might be written like this:
Title: Our Services
Top Navigation: Yes
Scripts: jquery, lightbox
<p>
Example, Inc. offers a wide range of…
It'd be great if the engine also had logic that lets me include or exclude elements (like Top Navigation above) from each page, and automate tasks like labelling the current page in the navbar:
<a href="/services"{page == 'services' ? ' class="current"' : ""}>Services</a>
Are there any engines out there like this?
I'd head directly towards Template-Toolkit for this. It comes with the ttree utility for building a static site.
You can handle the last part of your question with something like:
[%
INCLUDE 'navbar.tt'
page = 'services'
%]
To be honest, this is where things like PHP come in handy... to include common elements
Option 1: Use a language and enjoy it.
Option 2: Use the language to make the site... but then point a crawler at your site to grab the generated "static" content. e.g. WinHTTPTrack
Webby is fantastic for exactly this.
Another great option is Jekyll.
Adobe Dreamweaver's Templates do what you need if a non free tool is fine for you.
Basically you create a Template page where you define which parts are editable, then you create all your pages based on the template. If you change the template and save it all the associated pages are updates.
The templating system also has the ability to define default attributes and change them in a specific page. You can use this for labeling the current page, though for this IMHO a couple of lines of jquery code are much better.
You could write a program in any language you are familiar with that outputs static html files. You could have a basic structure and then for the customized stuff, you include it from a separate file.