- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个包含以下代码的用户控件:
<form id="CurrencyForm" method="post" runat="server">
Display prices in
<asp:DropDownList ID="currency" runat="server" AutoPostBack="true">
<asp:ListItem Value="GBP">GBP (£)</asp:ListItem>
<asp:ListItem Value="USD">USD ($)</asp:ListItem>
<asp:ListItem Value="EUR">EUR (€)</asp:ListItem>
</asp:DropDownList>
</form>
此用户控件包含在我的母版页中,因此它在站点的每个页面上都可用。
这是代码隐藏:
protected void page_load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
currency.SelectedValue = (string)Session["currency"];
}
else
{
session["currency"] = currency.SelectedValue;
Response.Redirect(Request.RawUrl);
}
}
当我更改下拉列表的选择时,会触发回发。但是,IsPostBack
的值似乎始终为 false。我不能完全指出我在这里做错了什么?
解决方案
在查看了大多数帖子的建议后,我明白我使用 code_behind 代码等而不是 Controller 是错误的。我想出了如何使用一个 Action 来基本上重定向回同一页面,所以下面就是我现在所拥有的:
用户控制:
<% using (Html.BeginForm("ChangeCurrency", "Home", FormMethod.Post)) {%>
Display prices in
<select id="currency" name="currency">
<option value="GBP">GBP (£)</option>
<option value="USD">USD ($)</option>
<option value="GBP">EUR (€)</option>
</select>
<input type="submit" value="change" /> // this is temporary to test the submit
<%} %>
Action
public ActionResult ChangeCurrency(string currency)
{
Session["currency"] = currency;
return new RedirectResult(Request.UrlReferrer.AbsoluteUri);
}
最佳答案
MVC 从不进行回发。因此,IsPostBack
始终正确地为 false。你认为是回发的东西实际上是一个 POST,因为 MVC 不做回发。您根本不应在 MVC 中使用 ASP.NET 服务器控件。
关于c# - ASP.NET MVC2 - 在加载用户控件时检查 IsPostBack 似乎不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3321525/
我只是想知道这两个语句之间是否有性能差异 Page.IsPostBack 或 IsPostBack 最佳答案 IL 级别会有差异(在第一种情况下会进行额外的 getter 调用),但差异可以忽略不计,
首先,对于我的问题标题不明确,我深表歉意。我不确定如何在标题中简洁地描述我的问题。 我的 .aspx 中有一个隐藏字段 我想在页面加载事件期间设置这个字段的值,如果不是回发。 protected v
我有一个带有以下代码的 asp.net 代码隐藏文件: protected void Page_Load(object sender, EventArgs e) { i
我有一个索引页面,它将用户发送到单独浏览器选项卡上的编辑产品页面。 对于每个编辑过的产品,索引都会重写 Session["ProductID"]。 然后,编辑页面将包含以下代码,以便为该选项卡和产品设
我很想知道 Page.IsPostBack 的具体含义。我完全知道它在标准 ASP.NET 页面中的日常使用,它表明用户是将数据提交回服务器端。参见 Page:IsPostBack Property
我目前遇到一个奇怪的问题,即当我单击简单回发到同一页面的 asp.net 按钮时,除 Google Chrome 之外的所有浏览器都将 Page_Load 事件中对 IsPostback 的调用注册为
我越用ASP.NET越if (!IsPostBack) {}似乎毫无意义…… 第一个例子: 例如,我刚刚搜索了一个问题,他们说将其用作解决方案的一部分: if (!Page.IsPostBack) {
我将 HtmlAgilityPack 用作自动化流程的一部分,以从现有内部网页中提取内容。问题是我需要让它认为 IsPostBack 是真的。 这是流程: 对页面进行初始调用并提取 HTML。 解析
我有一个使用 AJAX 的 aspx 页面。喜欢 我的代码是这样的 protected void Page_Load(object sender, Even
每次我在 PageLoad() 中测试 IsPostBack 时,无论发布数据是否存在,都会返回 false。我的第一 react 是检查表单或提交按钮中是否缺少 runat="server"标记。但
关注我的 previous question至于 ASP.net 的默认 Page.IsPostBack 实现是否安全(不是;它可以被伪造……HTTP 动词甚至不必是 POST!),我在想;肯定有更好
我有一个部署在两台服务器上的 asp.net 网站。在服务器前面有一个负载均衡器,用于将请求分发到两台服务器。我们使用 SQL Server 来存储 session 。我的问题是,如果用户转到该页面,
我遇到了一个奇怪的问题。每次刷新页面,IsPostBack是假的。 为了确保我的内容或母版页中没有任何内容导致这种情况,我创建了一个空的 Web 表单并在 Debug模式下启动它。仍然,在回发时,我有
我正在尝试使用更新查询将文件路径插入到 SQL Server 中。但是,尽管查询成功运行且没有错误,但我无法看到更改。这是我的 asp.net 网络应用程序的代码。我试图在我的数据库中的表列中插入流值
从外部 Javascript 文件中,我需要检查 IsPostBack (ASP.NET 页面)。这是我在谷歌搜索后发现的: var isPostBack = ; 但是在外部 JS 文件中似乎无法识别
我在下面有这个数学游戏,如果用户给出正确答案,分数应该增加 5。但是,它总是停留在 5 上并且永远不会增加。我想知道为什么?我声明了 !IsPostBack 变量,因此它停止重置 int,除非在页面刷
在接受 Post 数据的同一个页面上工作时,最好知道是否有像 Asp.NET 中那样的特殊函数,例如 Page.IsPostBack。也许我可以使用 isset($_POST) 但我认为可能会有一个特
有没有一种方法可以在不使用 Page 对象的情况下查明 Page 是否已回发。我想知道页面是否已在未向函数传递参数的情况下回发,就像您可以使用 httpContext.Current.Request
在我的页面 onLoad() 函数上,我以以下方式禁用页面上的所有控件 var form = document.getElementById("form1"); var elements = form
我想在 HTML 中的页面加载时将 div 设置为“display:none”(之前没有加载过),这在 ASP.NET 中称为 if(!IsPostBack),我不知道 HTML 中叫什么。 func
我是一名优秀的程序员,十分优秀!