更新:所有这些问题都是在Visual Studio中将网站应用程序转换为Web项目.一旦我挖出并找到了解决方案,我在下面标记为答案.
基本上,如果您想要将您的网站项目升级/移动到Web项目,您将遇到许多错误.简短的操作方法在下面的答案中.谢谢大家的意见和帮助.
旧问题和标题如下:
如何将名称空间xx {}包装到所有类文件中?
如何将命名空间包装到webproject(或任何项目)中的所有代码隐藏文件?
namespace MyDomain
{
// regular code here
}
Run Code Online (Sandbox Code Playgroud)
长话短说...
我一直在转换一个外包给海外的项目.仅在"网络"项目中就有超过20,000个文件,用于这样一个简单的网站(摇头).它是使用VB.NET和C#在vs2005中编写的(是的,两个编译).它最初是一个网站应用程序.我已将其转换为Web应用程序,主要是因为您发布时生成的8,000个"临时"程序集.
好的,我正在转换到VS2008.我已将所有代码转换为C#.看起来不错.我把所有特殊的App_Code/VB和C#代码都带到了单独的程序集中.
现在,当我再次尝试编译时,我会收到大量错误的警报.我通过将代码隐藏文件包装在命名空间中来修复这些问题,并更新usercontrol以使用新的命名空间.
但是......还有5000多个错误...帮助!
alt text http://eduncan911.com/blog/thumbnail/4-15-2009.6-00-13.PM.png
也许有另一种方式?以下是代码隐藏的示例代码段:
public partial class MyHomepage_MyStuff_MyPosts : SecurePage
{ ... }
Run Code Online (Sandbox Code Playgroud)
注意类名MyHomepage_MyStuff_MyPosts.这是指向/MyHomepage/MyStuff/MyPosts.aspx文件位置的目录路径.
错误是代码隐藏文件无法找到对正在使用的控件的引用.如:
ctl_website_rpt.RowCount = _totalCount;
Run Code Online (Sandbox Code Playgroud)
这是ASPX文件中名为"ctl_website_rpt"的控件(它们的命名约定).aspx页面在标题中:
<%@ Page Title="My Posts" Language="C#"
MasterPageFile="~/MasterPages/Main.master" AutoEventWireup="true"
CodeFile="MyPosts.aspx.cs"
Inherits="MyHomepage_MyStuff_MyPosts" %>
Run Code Online (Sandbox Code Playgroud)
也许有一种方法可以在其他地方引用这个页面?无需将其更改为命名空间?
namespace Website.MyHomepage.MyStuff
{
public partial class MyPosts
{ ... }
}
<%@ Page Title="My Posts" Language="C#"
MasterPageFile="~/MasterPages/Main.master" AutoEventWireup="true"
CodeFile="MyPosts.aspx.cs"
Inherits="Website.MyHomepage.MyStuff.MyPosts" %>
Run Code Online (Sandbox Code Playgroud) 我是MVC的新手,我注意到所有混合脚本标签的视图页面看起来都很糟糕.在视图代码隐藏中的方法中生成HTML然后只是将方法的字符串结果作为单个脚本插入是否有意义?
例如: <div><%= GenerateTonsOfHTMLFromSomeIEnumerable() %></div>
这与MVC理念相反吗?愚蠢的其他一些原因,如表现?它有什么优点吗?
我需要一种在代码隐藏中强制回发或页面重新加载的方法.尝试使用一些JavaScript,但没有让它工作.浏览网页我看到第一个问题是"为什么"?
情况是我在autopostback上有一个下拉列表,gridview数据源的select参数是从该下拉列表的选定值派生的.因此,页面正常工作正常,并且每当更改所选项目时内容都会更新.但是一些链接和按钮将客户从页面上移开,以便稍后链接回来.
我们的想法是将最后一个选项存储在会话中,并在会话选项不是默认值时检查第一个page.load事件.现在我可以根据它更改下拉列表的selectedindex,但显然数据源触发的速度比page.load快,所以除非我可以强制重新加载,否则这无济于事.
有任何想法吗?完整页回发/重新加载当然不是唯一的选择,只是强制gridview/datasource刷新就足够了.除了重新加载整个页面之外,我只是不知道该怎么做.
谢谢.
我意识到,通过提出这个问题,我本可以开始启示,但是我的同事在他们的aspx页面中使用了大量的内联编码,而我更喜欢使用代码隐藏.
这里有正确与错误的方式吗?
我们当前的Web门户是一个来自经典ASP代码库的端口.目前,我们项目中的所有页面扩展了一个Page名为的自定义类PortalPage.它处理登录/注销,为User当前经过身份验证的用户提供对公共对象的访问,并将标准页眉和页脚添加到我们的所有页面.
我们网站中的每个页面都是100%在代码隐藏中设计的.根本不使用ASPX页面.每个div,img和文本块都被分配为一个对象并从C#函数中添加,即使它是完全静态的内容(我们有相当数量).
页眉的示例:
HtmlGenericControl wrapperDiv = new HtmlGeneric("div");
HtmlAnchor bannerLink = new HtmlAnchor();
HtmlImage banner = new HtmlImage();
bannerLink.HRef = "index.aspx";
banner.Src = "mybanner.png";
banner.Alt = "My Site";
bannerLink.Controls.Add(banner);
wrapperDiv.Controls.Add(bannerLink);
this.Page.Controls.Add(wrapperDiv);
Run Code Online (Sandbox Code Playgroud)
更糟糕的是,所有Javascript都被添加到页面中,作为字符串连接的巨大混乱:
ClientScript.RegisterClientScriptBlock(this.GetType(), "javascript", @"
<script language='javascript'>
fullUrl = '" + ConfigurationManager.AppSettings["fullUrl"].ToString() + @"';
function showModule()
{
$('#" + this.userModule.ClientID + @"').css('display','block');
$('#" + this.groupModule.ClientID + @"').css('display','none');
$('#" + this.listsModule.ClientID + @"').css('display','none');
$('#" + this.labelsModule.ClientID + @"').css('display','none');
}
Run Code Online (Sandbox Code Playgroud)
目前,我的一位同事正在争辩说,在代码隐藏中分配每个对象比使用我看到的每个其他Web应用程序使用的ASPX w/Codebehind方法快数百倍.这违背了我的直觉,因为它实际上是添加runat="server"到页面上的每一段HTML. …
我是C#.Net的新手,我有一个问题,我无法在互联网上找到.我何时应该使用html + javascript + css的经典组合,而不是使用带有代码的aspx页面?正如我从.net开始经历的那样,我发现aspx页面和代码背后对开发人员来说非常容易.自从我开始以来,我不需要任何javascript代码.一定有什么不对劲.我想我错过了一点.你能否回答我的问题并告诉我一些例子,我必须使用html + javascript + css而不是aspx + aspx.cs,反之亦然?祝你今天愉快.
我有一个aspx页面,我需要检查并在页面上显示错误消息page_load.错误消息如下:
<div class="errorMessage">The user ID or password you entered does not match our records. Please try again. <br />
You may also securely recover your <a href="#">User ID</a> or reset your <a href="#">Password</a> online.
</div>
Run Code Online (Sandbox Code Playgroud)
在解决了一些条件之后,应该将这个代码块添加到页面中......并且该部分和其他一些函数在代码中实现了behide函数 page_load()
我如何只使用page_load()函数中的代码后面而不在aspx文件中内联编写?
我有一个带有以下控件的asp网站:
<span id="expTrainingShow" class="clsLink" style="margin-left: 20px;" onclick="GridChanger();">
+ Show Expired Continuing Education</span>
Run Code Online (Sandbox Code Playgroud)
我想根据后面代码中设置的条件隐藏它.我可以访问这样的跨度ID吗?(该网站使用visual basic构建)
我想在我的代码隐藏文件中设置一个公共属性,然后使用该属性来设置几个HtmlGenericControl <a>标记的href属性.这是我尝试过的:
代码背后:
public partial class className: System.Web.UI.MasterPage
{
private string _linkValue = "";
public string linkValue {
get { return _linkValue; }
}
protected void Page_Load (object sender, EventArgs e)
{
SetLink();
}
private void SetLink()
{
_linkValue = "myUrl";
}
}
Run Code Online (Sandbox Code Playgroud)
.aspx文件
<ul>
<li><a runat="server" href="<%= linkValue %>">Link 1</a></li>
<li><a runat="server" href="<%= linkValue %>">Link 2</a></li>
<li><a runat="server" href="<%= linkValue %>">Link 3</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
href不是将href设置为"myUrl",而是将其设置为"myUrl" %3C%25=%20linkValue%25%3E1
是否可以在定义它的元素的XAML中调用自定义依赖项属性?
我的意思是,我的mainWindow有以下简单代码:
码
public partial class MainWindow : Window
{
public static readonly DependencyProperty SpecialToProperty = DependencyProperty.Register("SpecialTo", typeof(double), typeof(MainWindow));
public MainWindow()
{
InitializeComponent();
}
public double SpecialTo
{
get
{
return (double)GetValue(SpecialToProperty);
}
set
{
SetValue(DoubleAnimation.ToProperty, value);
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何从MainWindow类的XAML部分代码中使用该依赖项属性?
我的意思是:
<Window x:Class="WpfAnimationTEst.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525"
SpecialTo=200>
Run Code Online (Sandbox Code Playgroud)
我知道可以使用附加的依赖属性来完成它,但这是唯一的方法吗?是不是可以调用代码隐藏中定义的依赖项属性?
谢谢你,如果这个问题有点愚蠢,我很抱歉,我只是在学习并试图理解WPF.
code-behind ×10
asp.net ×7
c# ×4
html ×3
asp.net-mvc ×1
codeblocks ×1
data-binding ×1
hyperlink ×1
inline ×1
javascript ×1
namespaces ×1
postback ×1
properties ×1
reload ×1
vb.net ×1
webforms ×1
wpf ×1
xaml ×1