Перенаправить недействительный QueryStringParameter на LinqDataSource - PullRequest
0 голосов
/ 20 июня 2011

У меня есть следующий LinqDataSource:

<asp:LinqDataSource ID = "agreementDs"
                    ContextTypeName = "AdministrationDataContext"
                    TableName = "Agreements"
                    runat = "server"
                    EnableUpdate = "true"                        
                    Where = "AgreementId=@AgreementId">

    <WhereParameters>
        <asp:QueryStringParameter QueryStringField = "AgreementId" 
                                  Name = "AgreementId"
                                  Type = "Int32"
                                  DefaultValue = "-1" />
    </WhereParameters>                        
</asp:LinqDataSource>    

Предполагается получить одну строку из таблицы базы данных соглашений. Как я могу определить, равен ли параметр AgreementId -1 и, если да, либо обслуживать страницу 404, либо перенаправить пользователя на главную страницу моего сайта? Я не могу понять, как правильно разместить эту логику в коде.

Обновление: не только когда параметр AgreementId равен -1, пользователь должен быть перенаправлен. Это всегда должно происходить, когда источник данных не содержит строк.

1 Ответ

1 голос
/ 18 ноября 2011

Добавьте имя метода «OnSelecting» в свой источник данных LINQ, затем из этого метода проверьте все, что вам нужно:

<asp:LinqDataSource runat="server" OnSelecting="ldsSelecting" .... />

protected void ldsSelecting(object o, LinqDataSourceSelectEventArgs e)
{
     // check for query string or other stuff here, redirect if needed
}
...