我正在重构使用以前版本的Asp.Net MVC构建的Web应用程序,其中所有视图都有2个代码隐藏文件。
此外,如果视图工作正常,我想开始删除文件后面的所有代码,因为大多数代码都是空的。
在代码隐藏中,很少有像这样的属性:
public partial class List {
public Message NewMessage { get { return new Message(); } }
}
在完全删除它们之前(我知道这些方法与视图无关)如何在单页面aspx或ascx中复制它们?
我只是尝试在< %%>中复制并粘贴公共方法。标签,但这不起作用。
答案 0 :(得分:3)
我可以问你为什么一开始就使用这种方法?我认为您可以通过强烈输入View
来实现同样的目标,并将消息作为View
的{{1}}传递。
Model
如果您已经有一个强类型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
。在您的Controller中,设置
TempData
然后在TempData["Message"] = "Hello world!";
中,您只需使用
View
您选择哪种方法取决于您的Message类包含的内容。
答案 1 :(得分:0)
你几乎已经在那里回答了这个,因为你说'我知道这种方法与观点无关':)
首先,我将这些方法移到控制器类中,并在模型中传递任何所需的数据(假设它们是适合它们的地方),然后当您从代码隐藏文件中删除所有功能并拥有再次清理分离,您可以从视图中删除代码隐藏文件。