ASP.NET AJAX UpdatePanel的最佳替代解决方案,用于在没有完全回发的情况下动态添加和删除用户控件
我正在尝试使用System.Web.Routing实现ASP.NET URL路由.这似乎在我的本地主机上正常工作但是当我上线时,我收到IIS 7的404错误(找不到文件).仅供参考,主机使用Windows Server 2008 IIS7.
我认为这在处理路由机制方面有所不同.但我无法弄清楚到底发生了什么.以下是我到目前为止所做的设置和更改,以使其工作,并给自己一些信誉,它在本地工作绝对正常.
Web.Config设置
然后我有一个system.webserver部分,它具有以下标记
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true">
<remove name="Session" />
<add name="Session" type="System.Web.SessionState.SessionStateModule"/>
<add name="UrlRoutingModule"
type="System.Web.Routing.UrlRoutingModule,
System.Web.Routing, Version=3.5.0.0,
Culture=neutral,
PublicKeyToken=31BF3856AD364E35" />
</modules>
<handlers>
<add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</handlers>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
然后在Application_Start部分中,我定义了一条路由,如下所示:
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
void RegisterRoutes(RouteCollection routes)
{
routes.Add(
"MyRoute",
new Route("ProductDetail/{ProductId}/{ProductName}",
new MyRouteHandler("~/ProductDetail.aspx")));
}
Run Code Online (Sandbox Code Playgroud)
最后MyRouteHandler看起来如下:
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
var display = (Page)BuildManager.CreateInstanceFromVirtualPath(
_virtualPath, typeof(Page));
HttpContext.Current.Items["ProductId"] = requestContext.RouteData.Values["Product"]; …Run Code Online (Sandbox Code Playgroud) 我有一个标准的表单auth ASP.NET应用程序.我的注册和登录页面与两个jQuery Mobile页面位于同一.aspx文件中.如果我回发我的ASP.NET页面,例如用户无法正确登录...等Url哈希开始一遍又一遍地追加自己.
示例网址:
http:// localhost:56644/Register.aspx?ReturnUrl =%2fDefault.aspx%3fbla%3dtest&bla = test#Register.aspx?ReturnUrl =%2fDefault.aspx%3fbla%3dtest&bla = test
一旦我的用户通过身份验证,我想在没有所有哈希信息的情况下重定向到ReturnUrl,或者在回发期间找到保留网址的方法?
标记:
<div data-role="page" id="register">
<div data-role="content" data-scroll="true" data-theme="b" class="Content">
......
<a href='#login'>Login</a
</div>
</div>
<div data-role="page" id="login">
<div data-role="content" data-scroll="true" data-theme="b" class="Content">
.....
<a href='#register' >Registered Yet?</a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
Register.aspx上的代码隐藏:
protected void btnLogin_Click(object sender, EventArgs e)
{
if (LoggedIn)
{
FormsAuthentication.SetAuthCookie("blabla", true);
//Note: Request.QueryString["ReturnUrl"] = "/Default.aspx?bla=test";
Response.Redirect(Request.QueryString["ReturnUrl"]);
}
}
Run Code Online (Sandbox Code Playgroud) 我最近开始为我的客户使用共享主机,因此请查看项目进度或为自己使用新技术.我似乎每次部署一个在本地运行良好的新项目时,我会在共享主机上遇到新的东西.
您是否有共享主机部署清单?
部署到共享主机时遇到的常见问题是什么?
我需要做这样的事情:
<asp:RadioButton ID="rbDate" runat="server" Text="Date" GroupName="grpPrimary" />
Run Code Online (Sandbox Code Playgroud)
并且能够在jQuery中检查单选按钮的检查值的值,但我这样的尝试不会返回true/false.
if ($('[name=rbDate]').attr("Checked"))
if ($('[name=rbDate]').attr("Checked").val())
if ($('[name=rbDate]:checked').val())
Run Code Online (Sandbox Code Playgroud)
一点帮助?
<script type="text/javascript">
$(function () {
$('.datePicker').datetimepicker({ dateFormat: 'dd/mm/yy' });
});
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="Server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:TextBox ID="TextBox1" class="datePicker" runat="server"></asp:TextBox>
<asp:UpdatePanel ID="holder" runat="server" UpdateMode="Always" ChildrenAsTriggers="true">
<ContentTemplate>
<asp:DropDownList runat="server" ID="ddl_RespondBy" AutoPostBack="true" OnSelectedIndexChanged="ddl_SelectedIndexChanged">
<asp:ListItem Selected="True">1 Hour</asp:ListItem>
<asp:ListItem>Other</asp:ListItem>
</asp:DropDownList>
<asp:TextBox ID="txt_RespondBy" class="datePicker" Visible="true" runat="server" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddl_RespondBy" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
</asp:Content>
protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
if (ddl_RespondBy.SelectedItem.Text == "Other")
{
txt_RespondBy.Visible = true;
}
else
{
}
}
Run Code Online (Sandbox Code Playgroud)
我使用更新面板进行部分回发,我有两个文本框,一个在更新面板外面,一个在内部,当我从下拉列表中选择其他内容并尝试打开txt_RespondBy文本框内的日历时它没有显示,但是文本框外部更新面板显示日历.为什么Javascript在部分回发后无法在更新面板内工作
目前,如果我想new用C#或Java 创建一个对象,我输入类似于以下内容的东西:
List<int> listOfInts = new List<int>(); //C#
ArrayList<String> data = new ArrayList<String>(); //Java
C#3.0试图通过实现以下编译器技巧来提高简洁性:
var listofInts = new List<int>();
由于编译器已经知道我想创建一个特定类型的新对象(事实上我实例化它而没有为它指定null引用或指定一个特定的方法来实例化它),为什么我不能这样做以下?
//default constructors with no parameters:
List<int> listOfInts = new(); //c#
ArrayList<String> data = new(); //Java
Run Code Online (Sandbox Code Playgroud)
var)并仍保留含义?注意:我在这样的功能中看到的主要好处之一是清晰度.让我们说var不受限制.对我来说它没用,它会从右边获得作业,为什么要这么麻烦?对我而言,New()实际上缩短了它的含义.它是一个新的()无论你声明什么,对我来说都是清晰简洁的.
Enviornment:
当我们运行我们的生产Web应用程序时,在获得HTTP 200之前,我们的AJAX调用通常有2-3个HTTP 401.
这是正常的吗?
有什么我们可能做错了吗?
注意:呼叫不会失败,401会尝试直到成功.
我通过调用这样的方法来刷新UpdatePanel和Javscript:
reloadDropDown = function (newValue)
{
__doPostBack("DropDown1", "");
selectNewValueInDropDown(newValue);
}
Run Code Online (Sandbox Code Playgroud)
在我的UpdatePanel里面是一个<select>框,我需要<option>用newValue选择一个框.我的问题是我的selectNewValueInDropDown方法在__doPostBack完成之前被调用.有没有办法在调用我的selectNewValueInDropDown方法之前"等待"回发?
我想看看是否有初始化的方式List<T>,其中T是一个object很像一个简单的集合被初始化?
List<int> digits = new List<int> { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
Run Code Online (Sandbox Code Playgroud)
List<ChildObject> childObjects = new List<ChildObject>
{
new ChildObject(){ Name = "Sylvester", Age=8 },
new ChildObject(){ Name = "Whiskers", Age=2 },
new ChildObject(){ Name = "Sasha", Age=14 }
};
Run Code Online (Sandbox Code Playgroud)
问题是,如何以及如果你能做这样的事情?
List<ChildObject> childObjects = new List<ChildObject>
{
{ "Sylvester", 8} , {"Whiskers", 2}, {"Sasha", 14}
};
Run Code Online (Sandbox Code Playgroud) asp.net ×8
c# ×5
jquery ×4
updatepanel ×3
ajax ×2
javascript ×2
asmx ×1
checked ×1
controls ×1
deployment ×1
hosting ×1
java ×1
oop ×1
postback ×1
radio-button ×1
url-routing ×1
webforms ×1