Динамическое создание страницы в C # asp.net (пример php включен) - PullRequest
0 голосов
/ 01 сентября 2009

Я работаю с некоторым примером кода, предоставленным в PHP - мы используем c #, поэтому мне нужно конвертировать его. По сути, это требует, чтобы я отправил кучу данных в API, который возвращает XML-документ в качестве ответа.

Затем мне нужно перенаправить на страницу со следующим HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Redirect Test Page</title>
</head>
<body OnLoad="OnLoadEvent();" >

<form name="downloadForm" action="ACS_URL_GOES_HERE" method="POST">
    <input type="hidden" name="PaReq" value="PAREQ_GOES_HERE">
    <input type="hidden" name="TermUrl" value="TERM_URL_GOES_HERE">
    <input type="hidden" name="MD" value="MD_GOES_HERE">
<noscript>
    <center>
        <h1>Processing your 3-D Secure Transaction</h1>
        <h2>JavaScript is currently disabled or is not supported by your browser.</h2><br>
        <h3>Please click on the Submit button to continue the processing of your 3-D secure transaction.</h3>
        <input type="submit" value="Submit">
    </center>
</noscript>
</form>
<script language="Javascript" >
<!--    
function OnLoadEvent(){
    document.downloadForm.target = "myIframe";
    document.downloadForm.submit();
}
//-->
</script>
<hr>
<iframe src="blank.htm" name="myIframe" width="390" height="450" frameborder="0">
</iframe>
<hr>

</body>
</html>

(переменные верхнего регистра (оканчивающиеся на _GOES_HERE) выше будут передаваться из документа XML ответа)

Эта страница после загрузки отправляет и помещает результат в iFrame, который называется «myIframe»

Вот и все!

У меня большие проблемы с выполнением чего-то подобного в C # - в PHP: у них есть это:

function RedirectToACSPage ($doc, $data_set) {
// error_log ("Call RedirectToACSPage");
// error_log ($doc->get("Response.CardTxn.ThreeDSecure.pareq_message"));
$pareq = $doc->get("Response.CardTxn.ThreeDSecure.pareq_message");
$acs_url = $doc->get("Response.CardTxn.ThreeDSecure.acs_url");
// $acs_url = "http://staging.datacash.com/ops/cgi/args.php";

// error_log ("PAREQ: " . $pareq);
// error_log ("ACS URL: " . $acs_url);
$term_url = "https://staging.datacash.com/ops/tester/next.php";
$md = $doc->get("Response.datacash_reference") . ":" . $data_set{'vtid'} . ":" .     $data_set{'password'} . ":" . $data_set{'tran_type'} . ":" . $data_set{'url'}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Redirect Test Page</title>
</head>
<body OnLoad="OnLoadEvent();" >

<form name="downloadForm" action="<?php echo $acs_url ?>" method="POST">
    <input type="hidden" name="PaReq" value="<?php echo $pareq ?>">
    <input type="hidden" name="TermUrl" value="<?php echo $term_url ?>">
    <input type="hidden" name="MD" value="<?php echo $md ?>">
<noscript>
    <center>
        <h1>Processing your 3-D Secure Transaction</h1>
        <h2>JavaScript is currently disabled or is not supported by your browser.    </h2><br>
    <h3>Please click on the Submit button to continue the processing of your 3-D secure transaction.</h3>
    <input type="submit" value="Submit">
</center>
</noscript>
</form>
<script language="Javascript" >
<!--    
function OnLoadEvent(){
    document.downloadForm.target = "joe";
    document.downloadForm.submit();
}
//-->
</script>


1 Ответ

1 голос
/ 01 сентября 2009

Ничего себе, как вы делаете это, может иметь смысл в PHP, но это настолько далеко, насколько вы можете получить от веб-форм, предполагая, что это то, что вы используете.

Если вы знакомы с PHP, я бы рекомендовал использовать ASP.Net MVC поверх веб-форм, но исходя из того, что вы говорите, вы уже начали путь веб-форм.

Самый простой способ взять то, что у вас есть, и превратить его во что-то, что будет работать, - это сначала начать использовать jQuery, поскольку это сэкономит ваше время с помощью javascript, затем удалить функцию OnLoadEvent из вашего aspx и использовать диспетчер сценариев для регистрации. это в вашем коде позади. В вашей функции JavaScript вы можете изменить значение скрытых полей перед отправкой.

Несмотря на это, вам лучше изменить дизайн страницы, чтобы лучше работать с веб-формами asp.net. При необходимости вы можете выполнить весь поток на одной странице, используя панели обновления или обратные ссылки для обновления экрана. Я бы посоветовал взглянуть на пример кода asp.net и посмотреть, как обрабатывается поток, потому что он сильно отличается и к нему нужно привыкнуть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...