ObjectDataSourceのにデータバインディングからの制御を防ぎますか?
-
21-08-2019 - |
質問
私は、数字のクエリ文字列値を期待するページがあります。たとえばます:
Details.aspx?rgn=1234
このページでは<asp:repeater>
にデータバインドされ<asp:objectdatasource>
です。データソースは、次のようになります。
<asp:ObjectDataSource ID="ObjectRegion" runat="server" SelectMethod="GetRegions" TypeName="Region">
<SelectParameters>
<asp:QueryStringParameter Name="RegionID" QueryStringField="rgn" Type="Int32" DefaultValue='0' />
</SelectParameters>
</asp:ObjectDataSource>
これは時々私は、ハッカー/検索エンジン/好奇心旺盛な人々による非数値を渡される、公開ページですので。私は自分をPage_Loadでこれを検証します。このような何かます:
protected void Page_Load(object sender, EventArgs e)
{
int RegionID;
string strRegion = Request.QueryString["rgn"];
if(string.IsNullOrEmpty(strRegion) || !int.TryParse(strRegion, out RegionID))
{
// setup permanent redirect
return;
}
}
問題は、私のリピータはまだ[FormatException: Input string was not in a correct format.]
...私がないようにしたいものです起こすとにかくそのデータバインディングを行うということです。これを回避するための簡単な方法の任意のアイデア?
解決
私は自分の質問に答えました。私は永久的なリダイレクトでResponse.End()
を追加するのを忘れます:
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location",URL);
Response.End();
所属していません StackOverflow