我有很多正在使用相同的变量页面。 我想在一个页面来创建这些,所以我不必须一遍又一遍的输入。 我该怎么做呢?
我想这两个_appStart.cshtml和_PageStart.cshtml,但是当我跑我的内容页,我得到错误“的名字selectedData不会在当前的背景下存在”
这里是我的_PageStart.cshtml:(试过_appstart.cshtml太)
@{
var db = Database.Open("razortest");
var selectQueryString = "SELECT * FROM tbl_stasjon ORDER BY nr";
var selectedData = db.Query(selectQueryString);
}
我所有的网页包含此:
@foreach(var row in (selectedData)) {
html here...
}
对于一个相当直接的解决方案,您可以创建中的静态类/方法App_Code
无论你需要它,返回查询对象,然后调用该方法:
using System;
using System.Collections.Generic;
using System.Web;
using WebMatrix.Data;
public static class MyClass
{
public static IEnumerable<dynamic> GetData()
{
var db = Database.Open("razortest");
var selectQueryString = "SELECT * FROM tbl_stasjon ORDER BY nr";
return db.Query(selectQueryString);
}
}
然后在你的脚本,你可以这样做:
@foreach(var row in MyClass.GetData()) {
html here...
}
有可能会更优雅,高性能的方式来实现这一点,但他们依靠正是你在做什么。 对于下面的教程这应该成为你的目的的目的。
你可以得到使用的会话,并尝试使用一个控制器。
看到
覆盖OnActionExecuting
控制器内(wihtin构造会话不可用)
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
if (Session != null)
Session["selectedData"] = "Hello World";
}
而行动中
Public ActionResult View1(){
return View(Session["selectedData"];
}
在你看来,你可以处理这个数据
@{
ViewBag.Title = Model;
}
这是一个字符串一个简单的解决方案。 您可以创建强类型的意见,并得到一个非常comfotable办法的意见中处理这些数据。