2013-04-30 6 views
2

Я использую Webmatrix для создания моего сайта, который отображает разные плагины, когда пользователи нажимают на разные кнопки, то есть, если они нажимают кнопку «Европа», они получают график avg температуры в Европе, если они нажимают на US, US avg temperature и т. д.Webmatrix - Передача переменной с страницы cshtml на страницу aspx

Страница cshtml содержит переменную сеанса UserId после успешного входа в систему и если этот пользователь нажимает кнопку, если (ispost) код обновляет всю страницу cshtml который затем содержит обновленный график.

В обновлении, в пределах страницы cshtml есть IFrame, исходный файл с именем «Using_MS_SQL_Server.aspx», который, в свою очередь, создает файл XML, населенное выполнение хранимой процедуры на мс базе данных SQL, как так:

SqlCommand query = new SqlCommand(
    "EXEC ON_WEBSITE_SQL_DB.dbo.AVG_TEMPS_PER_CONTINENT " 
    + AREA + ", " + USERID, conn); 

Как вы можете сказать, есть две переменные, подключаемые в хранимая процедура: AREA и USERID ...

в коде страницы aspx.cs, я могу легко назвать переменную USERID, как это переменная сеанса с использованием MembershipUser user = Membership.GetUser();.

Как передать переменную со значением «EUROPE» на странице cshtml, которую пользователь нажимает на страницу aspx для использования в хранимой процедуре, ожидающей переменную AREA?

+0

Можете ли вы передать его в строке запроса URL-адреса aspx? – TGH

+0

Ваш образец имеет SQL-инъекцию. Попробуйте удалить его и обновить вопрос с помощью безопасного кода с помощью параметризованных запросов. –

+0

@TGH: ты прибил его ... он работает !!! блестящий, спасибо! – Mark

ответ

1

Единственные способы, которыми вы могли бы это достичь, - это использовать сеанс/куки или строку запроса.

Если данные, которые вы передаете, не являются конфиденциальной информацией, просто перейдите к строке запроса. Если он чувствителен, подумайте о шифровании либо значения сеанса, либо файла cookie, которое вы можете расшифровать на Page_Load ASPX.

Смежные вопросы