在asp.net webform 的cs文件里面可以在类下面定义局部变量,比如 下面的Id
public partial class _Default : Page { public int Id; protected void Page_Load(object sender, EventArgs e) { Id = int.Parse(Request.QueryString["Id"]); } protected void btnDelete_Click(object sender, EventArgs e) { del(Id); } public void del(int id) { //删除... } }
在page_load 里面 可以对这个Id 赋值。 比如从其他页面传入一个 id过来。在这个页面里面的page_load 里面获取到传过来的值赋值给这个Id。比如要删除这条数据就可以直接使用这个id了。
在mvc 里面是否可以定义这样的局部变量, 应该怎么定义一个变量,可以在整个controller 里面使用。比如在进入controller 里第一次执行的action 里面对这个变量赋值,然后再其他的action 里面可以直接使用这个变量。如下:
public class Default1Controller : Controller { // // GET: /Default1/ public int Id; public ActionResult Index(int id) { Id = id; return View(); } public ActionResult Show() { return View(Id); } }
上面这个方式好像在 Show 这个action 里面Id的值是为0的。
还没理解mvc,骚年继续研究
刚刚接触。
求指点,一个页面传入一个id过来,想接受到这个id后一直保持在本页面可以使用。不想将id保存在隐藏域中,因为这样,id被暴露在页面中去了。
@{
int X=0;
}
用的时候@(x)
你要清楚每个Action都是一个真实的页面的,所以跨页面访问变量,我想你应该知道了吧
cookie,session, controller的全局变量都行的
请问该问题您是如何解决的,在下现在也遇到了该问题,不知如何在一个controller里定义一个变量,让该controller中的action共用,我这个变量是对应页面的helper类,各action利用该helper取数据返回给页面,项目是从webform迁移到mvc
前期的架构没有搭建好,导致出现了这样的奇怪的需求。将信息加密后放到cookie或者本地存储把,应用程序域也可以。上面说的很对,一个action就是一个视图页面,要想公用可不就是跨页面传值了嘛。