将Html模板与Razor混合使用

时间:2013-12-30 16:41:00

标签: asp.net-mvc razor themes

我对MVC中的Razor感到有点困惑。我是RAZOR和MVC的新手,刚刚创建了LOGIN和注册页面进行练习。我的老板让我把一些主题/模板,然后将其与此代码集成。我的问题是:

  1. 是否可以将基于Razor语法的HTML / CSS设计主题集成,我的意思是我创建了MVC RAZOR的VIEWS但现在如果我将基于HTML / CSS的主题与它一起使用那么会发生什么并发症或事情出现了?

1 个答案:

答案 0 :(得分:0)

是肯定的。超级可能。视图基本上是动态HTML。

只需将html复制到视图中,一旦呈现视图,您将看到整个html。 在渲染时你需要动态的HTML中的任何地方,你可以使用“@”符号,这将启动c#代码。然后你可以创建c#代码并在其中添加html。

示例:

@{
 string name = "Jovan";
 var dateOfBirth = new { Day = 8, Month = 12, Year = 1980 }; 
 string[] skills = new string[] { "MVC",  "C#", "JQuery", "ASP.NET" };
}


<h2>@name</h2>
<p>Born in year: @dateOfBirth.Year</p>
<ul>
@foreach(skill in skills){
 <li>skill</li> 
}
</ul>

在此示例中,您首先填写要显示的值,然后显示它们。这里每个运行的数量与您填充数组的技能数量相对应,意味着4次可以在每次运行时创建“li”标记。

当然,在大多数情况下,你不这样做。您可以在控制器或更好的服务或业务层上创建值,然后将其通过模型传递给视图。所以基本上查看只是呈现从控制器收到的信息。

这是另一个例子:

<!DOCTYPE html>

<html lang="en">
<head>
     <meta charset="utf-8" />
     <title>Web Pages Demo</title>
</head>
<body>
     <h1>Hello Web Pages</h1> 
     <p>The time is @DateTime.Now</p>
</body>
</html>

在此示例中,页面将始终呈现服务器的当前时间和日期。

另一个例子:

<select id="fieldStaffUsersListBox" multiple size="10">
    @foreach (var user in Model.Users)
    {
        <option value="@user.UserName">@user.FullName</option>
    }
</select>

在这里,您将动态创建一个选择框,用于呈现从控制器传递的用户列表,并将Viewmodel传递给视图。

您可以使用本教程了解更多信息: http://www.asp.net/mvc/tutorials/older-versions/javascript/creating-a-mvc-3-application-with-razor-and-unobtrusive-javascript

你需要学习很多东西。

祝你好运:)