2009-04-20 43 views
0

我正在重构一个使用以前版本的Asp.Net MVC构建的Web应用程序,其中所有视图都有2个代码隐藏文件。将部分页面属性移动到后面无代码的视图

此外,如果视图正常工作,我想开始删除所有代码背后的代码,因为他们大多数是空的。

有几个人有这样的属性在代码隐藏:

public partial class List { 
    public Message NewMessage { get { return new Message(); } } 
} 

之前完全删除它们(我知道这个方法不属于意见)我怎么复制他们在单页aspx或ascx?
我只是试图复制并粘贴<%>标签中的公共方法,但这不起作用。

回答

3

请问您为什么首先使用这种方法?我认为你可以通过强制输入View来实现同样的目的,并将消息作为ViewModel传递。

Inherits="System.Web.Mvc.View<Message>" 

如果你已经有一个强类型View,你可以让你的类库中的自定义类有空间为您的信息,例如

public class ModelWithMessage { 
    public Message Message { get; set; } 
    public Object Model { get; set; } 
    public ModelWithMessage(Message Message, Object Model) { 
     this.Message = Message; 
     this.Model = Model; 
    } 
} 

当然你也可以做这种类型的通用并且允许ModelWithMessage<T>结构并且避免必须将Model转换为您需要的任何类型。另一种方法是使用TempData。在你的控制器,然后在设置

TempData["Message"] = "Hello world!"; 

View你写的消息出来简单地用

<%= TempData["Message"] %> 

哪种方法你选择取决于你的消息类包含的内容。

0

你几乎没有回答自己这一点,你说:“我知道这个方法不属于意见” :)

首先,我会提出这些方法进行到控制器类和传递任何需要的数据(假设这对他们来说是一个合适的位置),那么当你从代码隐藏文件中删除所有的功能并且再次有一个干净的分隔时,你可以去掉你的视图中的代码隐藏文件。

相关问题