1、前端采用bootstrap3进行架构
2、后端采用asp.net mvc进行开发
开发工具vs2010 mvc4需要安装sp1的补丁。
3、js组件的封装采用react
- 新建mvc项目
BootStrapReactAndMVC。在Views\Shared\新建_Layout.cshtml文件。将bootstrap的引用进行添加 - 新建HomeController和ReportController两个Controller对象。
- 新建renHangcpu.jsx文件。文件的内容如下
- var cpuWatch = React.createClass({
- render: function() {
- return (<div>
- <h2 className="sub-header">cpu监控</h2>
- <div className="row placeholders">
- <div className="col-xs-6 col-sm-3 placeholder">
- <img data-src="holder.js/200x200/auto/sky" className="img-responsive" alt="Generic placeholder thumbnail"/>
- <h4>cpu1</h4>
- <span class="text-muted">使用率10%</span>
- </div>
- <div className="col-xs-6 col-sm-3 placeholder">
- <img data-src="holder.js/200x200/auto/vine" className="img-responsive" alt="Generic placeholder thumbnail"/>
- <h4>cpu2</h4>
- <span class="text-muted">使用率10%</span>
- </div>
- <div className="col-xs-6 col-sm-3 placeholder">
- <img data-src="holder.js/200x200/auto/sky" className="img-responsive" alt="Generic placeholder thumbnail"/>
- <h4>cpu3</h4>
- <span class="text-muted">使用率10%</span>
- </div>
- <div className="col-xs-6 col-sm-3 placeholder">
- <img data-src="holder.js/200x200/auto/vine" className="img-responsive" alt="Generic placeholder thumbnail"/>
- <h4>cpu4</h4>
- <span class="text-muted">使用率20%</span>
- </div>
- </div>
- </div>
- );
- }
- })
新建renhangyingyanjsx.jsx文件。文件的内容如下
- var YingPanWatch = React.createClass({
- render: function () {
- return (<div><h2 className="sub-header">硬盘吞吐量</h2>
- <div className="table-responsive">
- <table className="table table-striped">
- <thead>
- <tr>
- <th>#</th>
- <th>磁盘1</th>
- <th>磁盘2</th>
- <th>磁盘3</th>
- <th>磁盘4</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>1,001</td>
- <td>100</td>
- <td>100</td>
- <td>100</td>
- <td>100</td>
- </tr>
- <tr>
- <td>1,001</td>
- <td>100</td>
- <td>100</td>
- <td>100</td>
- <td>100</td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>)
- }
- })
sx不能被直接引用。我们要用ES的编译器进行编译。
http://babeljs.cn/repl/ 在这个网址上进行编译。
编译后的文件如下
renHangcpu1.js 可以直接引用
- "use strict";
-
- var cpuWatch = React.createClass({
- displayName: "cpuWatch",render: function render() {
- return React.createElement(
- "div",null,React.createElement(
- "h2",{ className: "sub-header" },"cpu监控"
- ),React.createElement(
- "div",{ className: "row placeholders" },React.createElement(
- "div",{ className: "col-xs-6 col-sm-3 placeholder" },React.createElement("img",{ "data-src": "holder.js/200x200/auto/sky",className: "img-responsive",alt: "Generic placeholder thumbnail" }),React.createElement(
- "h4","cpu1"
- ),React.createElement(
- "span",{ "class": "text-muted" },"使用率10%"
- )
- ),{ "data-src": "holder.js/200x200/auto/vine","cpu2"
- ),"cpu3"
- ),"cpu4"
- ),"使用率20%"
- )
- )
- )
- );
- }
- });
renhangyingpanjs.js 可以直接被引用
- "use strict";
-
- var YingPanWatch = React.createClass({
- displayName: "YingPanWatch",render: function render() {
- return React.createElement(
- "div",null,React.createElement(
- "h2","硬盘吞吐量"
- ),React.createElement(
- "div",{ className: "table-responsive" },React.createElement(
- "table",{ className: "table table-striped" },React.createElement(
- "thead",React.createElement(
- "tr",React.createElement(
- "th","#"
- ),"磁盘1"
- ),"磁盘2"
- ),"磁盘3"
- ),"磁盘4"
- )
- )
- ),React.createElement(
- "tbody",React.createElement(
- "td","1,001"
- ),"100"
- ),"100"
- )
- ),"100"
- )
- )
- )
- )
- )
- );
- }
- });
4、然后在下面的view Home/Index上我们添加如下的代码
- @{
- ViewBag.Title = "欢迎使用";
- ViewBag.WhichPage="Home";
- Layout = "~/Views/Shared/_Layout.cshtml";
- }
-
-
- @section Scripts {
- <script type="text/babel">
- ReactDOM.render(
- <cpuWatch/>,document.getElementById('divcpu')
- );
-
- ReactDOM.render(
- <YingPanWatch/>,document.getElementById('divYingpan')
- );
-
- </script>
- }
-
- <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main" >
- <div id="divcpu"></div>
- <div id="divYingpan"></div>
- </div>
- @{
- ViewBag.Title = "欢迎使用";
- Layout = "~/Views/Shared/_Layout.cshtml";
- ViewBag.WhichPage="Report";
- }
-
-
- @section Scripts {
- <script type="text/babel">
- ReactDOM.render(
- <cpuWatch/>,document.getElementById('divYingpan')
- );
-
- </script>
- }
-
- <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main" >
-
- <div id="divYingpan"></div>
- <div id="divcpu"></div>
- </div>