我目前正在将ASP.NET webforms解决方案转换为MVC。
在webforms中,除了site.master之外,我们还有母版页,我们保留每个部分的公共代码和头部导入。所以正常的页面继承是这样的:
Site.master -> section.Master -> page.aspx
在MVC中,我不清楚将代码放在哪一部分。将部分内容拆分为部分视图是唯一的解决方案吗?它变成了?
Layout.cshtml -> page.cshtml -> any-number-of-partial-views
举一个例子,如果我需要在所有10个部分页面中共享一个CSS文件,我可以将其放在部分视图中并在每个页面上呈现它,但感觉效率不高。或许我只需要了解这种新的工作方式。
答案 0 :(得分:0)
您也可以在MVC中使用sections。
在您的required
中,您可能会遇到以下情况:
@section testSection{
<h1>Test</h1>
}
在您的子视图中,您可以指定本节中应呈现的HTML,或者您可以将它们全部放在一起,因为TEMA
已设置为false:
//initialization
double[] outRes = new double[array.length];
MInteger begin = new MInteger();
MInteger length = new MInteger();
//library call
Core c = new Core();
RetCode retCode = c.tema(0, array.length - 1, array, period, begin, length, outRes);
//result handling
if (retCode == RetCode.Success) {
return outRes;
} else {
System.out.println("Error in TEMA calculation");
return null;
}
答案 1 :(得分:0)
如果你想在几个地方重复使用代码,那么部分视图就是你的好朋友。
您可以在视图&gt;中放置部分视图ControllerNameAsFolderName&gt;查看页面(放在此处)仅在相同的控制器视图中使用,甚至在共享文件夹内使用全局。
section
是另一种选择,就像UserControl
(在网络表单中)。在布局页面上创建部分参考@RenderSection("sectionName", required:false)
,并在
@section sectionName{
<div>content goes here</div>
}
假设您想在视图页面的<head>
内放置一些内容(例如元信息),在这种情况下,您可以在section
页面中创建_Layout.cshtml
,然后使用{{1}在视图页面上。
通过这种方式,您可以将代码从任何页面放置在DOM结构中的特定位置。 section
有一个很棒的功能,可以将其标记为section
。