Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 区别在于将属性指定给元素还是将其直接放在标记中_C#_Asp.net - Fatal编程技术网

C# 区别在于将属性指定给元素还是将其直接放在标记中

C# 区别在于将属性指定给元素还是将其直接放在标记中,c#,asp.net,C#,Asp.net,这样做的区别是什么: <a href="<%=this.GetUserProfilePermalink()%>"><%=this.GetUsername()%></a> 我注意到我的codebehind在第一种方式下更具可读性,因为我将所有的assinging都移到了markup上,但是如果我在某个地方漏掉了一些东西,由于“文字中的字符太多”错误,很难找到错误。区别是什么,最好的方式是什么?第二种方式,您将在服务器上创建一个超链接对象,对其设置一

这样做的区别是什么:

<a href="<%=this.GetUserProfilePermalink()%>"><%=this.GetUsername()%></a>

我注意到我的codebehind在第一种方式下更具可读性,因为我将所有的assinging都移到了markup上,但是如果我在某个地方漏掉了一些东西,由于“文字中的字符太多”错误,很难找到错误。区别是什么,最好的方式是什么?

第二种方式,您将在服务器上创建一个超链接对象,对其设置一些属性,然后当页面处于呈现状态时,它将使用该对象以HTML呈现超链接

使用第一种方法,只需使用响应对象发出字符串,服务器上没有创建超链接对象


即使第一种方法通常更轻,第二种方法也有很多优点。例如,由于您在服务器上有一个对象进行自我渲染,因此它可以知道当前正在向哪个浏览器进行自我渲染,并对不同的浏览器使用不同的渲染技术,因此它可以在任何地方工作。

第二种方法是,您将在服务器上创建一个超链接对象,对其设置一些属性,然后当页面处于呈现状态时,它将使用该对象以HTML呈现超链接

使用第一种方法,只需使用响应对象发出字符串,服务器上没有创建超链接对象


即使第一种方法通常更轻,第二种方法也有很多优点。例如,由于服务器上有一个对象可以进行自我渲染,因此它可以知道当前正在向哪个浏览器进行自我渲染,并对不同的浏览器使用不同的渲染技术,因此它可以在任何地方工作。

其中一个不同之处在于ViewState的使用:

假设.GetUserProfilePermalink()是一个代价高昂的操作,对于第一个方法,您必须在每次回发时运行它

使用第二个方法和活动的viewstate,您将能够只运行一次.GetUserProfilePermalink(),并且该值将存储在viewstate中(但要以bandwith为代价),并在每次回发时显示


此外,在项目编译期间不会检查标记中的代码。从长远来看,代码重构是一个问题。

其中一个区别在于ViewState的使用:

假设.GetUserProfilePermalink()是一个代价高昂的操作,对于第一个方法,您必须在每次回发时运行它

使用第二个方法和活动的viewstate,您将能够只运行一次.GetUserProfilePermalink(),并且该值将存储在viewstate中(但要以bandwith为代价),并在每次回发时显示


此外,在项目编译期间不会检查标记中的代码。从长远来看,这是代码重构的一个问题。

谢谢你的回复,你能解释一下吗?“.并对不同的浏览器使用不同的渲染技术,所以它在任何地方都能工作。”我不太明白你的意思。谢谢你的回复,你能解释一下吗我不太明白你的意思。
<a id="hlUser" runat="server"></a>
hlUser.HRef = GetUserProfilePermalink();

hlUser.InnerText = GetUsername();