我有一组扩展方法,我经常用于各种UI任务.我通常将它们定义为运行类型object,即使在它们内部我通常将它们转换为字符串类型.
public static string FormatSomething(this object o)
{
if( o != null )
{
string s = o.ToString();
/// do the work and return something.
}
// return something else or empty string.
}
Run Code Online (Sandbox Code Playgroud)
我使用类型object而不是使用类型的主要原因string是<%#Eval("Phone").ToString().FormatSomething()%>在我可以做的时候将自己保存在UI中<%#Eval("Phone").FormatSomething()%>.
那么,从性能的角度来看,创建所有扩展方法是否正常object,或者我应该根据扩展方法的作用将它们转换为string(或相关)类型?
我正在尝试运行一些客户端脚本,当且仅当客户端页面验证失败时,并且无法确定我可以将其挂钩的位置.
如果我将我的JavaScript函数绑定到提交表单的按钮的OnClientClick,它将在客户端验证之前运行.如果我将它绑定到表单的OnSubmit,那只有在验证通过时才会触发.
关于如何或在哪里勾选这样的东西的任何想法?或者,如果您有其他建议,我会向他们开放.
<form id="frm" runat="server"
onsubmit="FUNCTION HERE WONT FIRE IF VALIDATION FAILS">
<asp:requiredfieldvalidator id="vld" runat="server" controltovalidate="txt"/>
<asp:textbox id="txt" runat="server"></asp:textbox>
<asp:button id="cmd" runat="server" OnClick="dosomething"
OnClientClick="FUNCTION FIRES BEFORE VALIDATION OCCURS">
</form>
Run Code Online (Sandbox Code Playgroud) 我想知道是否有人把某些东西放在一起或者已经看到了与C#的JavaScript parseInt相当的东西.
具体来说,我希望采取如下字符串:
123abc4567890
Run Code Online (Sandbox Code Playgroud)
并仅返回第一个有效整数
123
Run Code Online (Sandbox Code Playgroud)
我有一个我用过的静态方法只返回数字:
public static int ParseInteger( object oItem )
{
string sItem = oItem.ToString();
sItem = Regex.Replace( sItem, @"([^\d])*", "" );
int iItem = 0;
Int32.TryParse( sItem, out iItem );
return iItem;
}
Run Code Online (Sandbox Code Playgroud)
以上将采取:
ParseInteger( "123abc4567890" );
Run Code Online (Sandbox Code Playgroud)
并把我还给我
1234567890
Run Code Online (Sandbox Code Playgroud)
我不确定是否可以使用正则表达式,或者是否有更好的方法来从字符串中获取第一个整数.
就像问题所说:在Visual Studio中,当我在Model.edmx中,当我从数据库更新模型...添加一些新的数据库字段后,它创建了一个几乎重复的Model1.Designer.cs文件,导致与原始Model.Designer.cs.
我可以删除新的Model1.Designer.cs文件,但是新添加的字段不可用.
有没有解决方案(除了删除和重新创建模型)?
干杯,
我将Paypal购物车集成到我的ASP.NET C#项目时遇到问题.问题是Paypal购物车在FORM标签内,所以如果我把它放在我的服务器表单标签内,它将无法正常工作.
它看起来像这样:
<body>
<form id="form1" runat="server">
<form target="_self" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="business" value="MySecretEmail@hidden.com">
<input type="hidden" name="display" value="1">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_viewcart_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
</form>
</body>
Run Code Online (Sandbox Code Playgroud)
有什么办法可以防止这种情况发生吗?我在google上搜索,在Stackoverflow上我找到了这个链接:PayPal Name-Value Pair API Basics,但老实说,它对我没有任何意义,因为我不是程序员.
谢谢!
我希望在我网站的两个页面上强制IE9进入IE8兼容模式.我正在使用Kentico CMS,所以我没有ASPX页面,我可以去修改HEAD标签.所以我希望通过使用用户控件或Web部件来添加META标记.
在Web部分中,我尝试了以下代码:
this.Page.Header.Controls.Add(new LiteralControl(mystring));
Run Code Online (Sandbox Code Playgroud)
但是,这通常会将标头添加为HEAD部分中的最后一个标记.IE兼容模式要求这是head部分中的第一个标记.
这可能来自后面的代码吗?
或者,如果有人具有Kentico的专业知识,那么Kentico特定的解决方案也会起作用.
我只想让它在我的网站上的两个特定页面上工作.不是所有的人!
c# asp.net kentico ie8-compatibility-mode internet-explorer-9
我查看了所有的asp重定向,他们都说了同样的话.我正在尝试将单个.asp页面重定向到新的URL.这是我一直看到的代码,并尝试多次放置在相关页面的开头:
<%@Language=VBScript %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader ( "Location","http://www.new-location.com" )
%>
Run Code Online (Sandbox Code Playgroud)
它似乎不起作用.它看起来像典型的.asp页面<@ Language=VBScript %>
,顶部是html代码.有没有其他方法来重定向单个.asp页面?
asp.net ×3
c# ×3
javascript ×2
asp-classic ×1
integer ×1
kentico ×1
parseint ×1
paypal ×1
redirect ×1