当我使用Response.Redirect(...)将表单重定向到新页面时,我收到错误:
mscorlib.dll中出现"System.Threading.ThreadAbortException"类型的第一次机会异常mscorlib.dll中
出现"System.Threading.ThreadAbortException"类型的异常,但未在用户代码中处理
我对此的理解是,错误是由Web服务器中止调用response.redirect的页面的其余部分引起的.
我知道我可以添加第二个参数Response.Redirect,称为endResponse.如果我将endResponse设置为True,我仍然会收到错误,但如果我将其设置为False,那么我不会.我很确定,这意味着网络服务器正在运行我重定向的页面的其余部分.至少可以说这似乎效率低下.有一个更好的方法吗?除了Response.Redirect或有没有办法迫使旧页面停止加载我不会得到的东西ThreadAbortException?
如果我有5个字符串变量,并且0到5之间是null或空是否有一个简单/简单的方法返回第一个非null或空?我使用的是.NET 3.5
我在表格中使用以下代码:
<tr>
<td>User Language:</td>
<td>
<asp:DropDownList ID="Language" runat="server" Width="200px">
<asp:ListItem Selected="True">English</asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td><span class="important">*</span>Company:</td>
<td><asp:TextBox ID="Company" runat="server" width="200px" /></td>
</tr>
Run Code Online (Sandbox Code Playgroud)
当代码出现在网站上时,<asp:Textbox>控件为205px,<asp:DropDownList>宽度为200px.是什么造成的?它们都设置为200px的宽度.
我有一个网站,我需要添加一个Favicon.ico.该站点使用带有路由的ASP.NET 3.5 Web窗体编写.问题是Favicon链接始终返回页面未找到错误.这是因为路由不知道Favicon.ico的链接应该去哪里,所以它返回Not Found页面.
我试图为favicon添加一个StopRoutingHandler,但它们似乎都没有用.以下是我到目前为止尝试过的内容:
routes.Add(new Route("MasterPages/{favicon}.ico", new StopRoutingHandler()));
routes.Add(new Route("{favicon}.ico", new StopRoutingHandler()));
routes.Add(new Route("favicon.ico", new StopRoutingHandler()));
routes.Add(new Route("favicon.ico/{*pathInfo}", new StopRoutingHandler()));
Run Code Online (Sandbox Code Playgroud)
有谁知道我应该使用什么?我尝试过的favicon.ico链接看起来像这样:
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<link rel="icon" href="/favicon.ico" type="image/x-icon" />
Run Code Online (Sandbox Code Playgroud)
它们在我的<html><head>标签内.
另外,作为最后一点,我不使用MVC,因为如果我是,我可以使用它:
routes.IgnoreRoute("{*favicon}", new {favicon=@"(.*/)?favicon.ico(/.*)?"});
Run Code Online (Sandbox Code Playgroud)
遗憾的是,IgnoreRoute不适用于Routing Web Forms,因为它不是MVC应用程序.
我有一个网页,用户需要输入客户联系信息.他们可以从0进入无限数量的联系人.
我在页面上创建了这个页面代码:
<ajaxToolkit:ToolkitScriptManager runat="Server" EnablePartialRendering="true" ID="ScriptManager1" />
<asp:PlaceHolder ID="phCustomerContacts" runat="server" EnableViewState="true">/asp:PlaceHolder>
<asp:LinkButton ID="btnAddContact" runat="server" OnClick="btnAddContact_Click" CssClass="LinkButton" Text="Add Contact"/>
Run Code Online (Sandbox Code Playgroud)
在我的代码后面我添加了这个:
public void btnAddContact_Click(object sender, EventArgs e)
{
IList<CustomerContactProfile> customerContacts = new List<CustomerContactProfile>();
if (ViewState["CustomerContactList"] != null)
customerContacts = (List<CustomerContactProfile>)ViewState["CustomerContactList"];
CustomerContactProfile contactProfile = (CustomerContactProfile)LoadControl("~/Controls/Embedded/CustomerContactProfile.ascx");
customerContacts.Add(contactProfile);
foreach (CustomerContactProfile contact in customerContacts)
phCustomerContacts.Controls.Add(contact);
ViewState["CustomerContactList"] = customerContacts;
}
Run Code Online (Sandbox Code Playgroud)
此代码不起作用,因为ViewState无法处理存储所有控制数据.但是,我想不出另一种存储已添加控件的方法.
asp:PlaceHolder控件的视图状态不保存任何内容,我需要保存控件,以便在用户向第一个控件输入一些数据时,数据在添加第二个数据时不会丢失,依此类推.
我有一个看起来像这样的查询:
IQueryable<Profile> profiles = from p in connection.Profiles
where profile.Email.Contains(txtSearch)
select p;
Run Code Online (Sandbox Code Playgroud)
我知道当它转换为SQL时它会使用a LIKE '%<value of txtSearch>%'但是如果txtSearch = "jon%gmail.com"它将它转换为`LIKE'%jon~%gmail.com%'.〜逃脱了中间的百分比,这是一张外卡.我该如何解决这个问题?我需要能够将通配符放入我的LINQ到EF搜索中.
我的销售订单表(SalesTable)中有一些字段需要在另一个字段设置为特定值时被禁用.为此,我覆盖了表单字段上的enter和gotFocus方法(我做了两个测试).代码编译并没有任何问题.
我的问题是,当我单击相应网格列中的字段时,这些被覆盖的方法都不会被调用.什么会导致在网格字段上不调用enter和gotFocus方法?
我正在使用Microsofts ASP.NET Ajax HTML编辑器,这里有http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/HTMLEditor/HTMLEditor.aspx.
当我在编辑器中输入加号"+"时,它总是被剥离并用空格替换.我甚至尝试过使用+但是没有成功.是否有某种方法可以在编辑器中输入加号?
我有一个List<T1>项目和第二个List<T2>项目.两个列表都按属性A按字母顺序排序.我知道项目列表List<T2>是其中的一个子集,List<T1>并且没有List<T2>存在的项目List<T1>.
我需要迭代List<T1>并在每次匹配变量时更改变量List<T2>.什么是最快和最好的方法?我假设我需要迭代两个列表,但我知道做一个嵌套的foreach没有意义.
我有一个简单的方法正在测试。运行测试时出现错误
“对模拟的所有调用都必须具有相应的设置”
在最后一行
dataField.DefaultValue = orderNumber.ToString();
Run Code Online (Sandbox Code Playgroud)
是什么原因造成的?
我只是在设定一个领域。
void IUtilities.SetOrderIdInDocumentMetaData(Document document, int orderNumber)
{
DataField dataField = null;
if (document.DataFields.IsPresent(ORDER_ID) == false)
{
dataField = document.DataFields.Add(ORDER_ID, AppDefault: false, DocDefault: false);
}
else
{
dataField = document.DataFields[ORDER_ID];
}
dataField.DefaultValue = orderNumber.ToString();
}
Run Code Online (Sandbox Code Playgroud)
这是我的单元测试代码。
[TestMethod]
public void Utilities_SetOrderIdInDocumentMetaData_SetNew()
{
string orderNumber = "1";
int orderId = 1;
corelDocument
.Setup(s => s.DataFields.IsPresent(ORDER_ID))
.Returns(false);
corelDocument
.Setup(s => s.DataFields.Add(ORDER_ID, null, false, false, false))
.Returns(corelDataField.Object);
corelDataField
.Setup(s => s.DefaultValue)
.Returns(orderNumber);
Utilities.SetOrderIdInDocumentMetaData(corelDocument.Object, orderId);
Assert.AreEqual(orderNumber, corelDataField.Object.DefaultValue);
}
Run Code Online (Sandbox Code Playgroud)