Я не могу передать новую модель, которую я делаю OnPost.Поэтому я пытаюсь просто передать значения маршрута.
Я могу вернуть RedirectToPage ("ValidateCommand"), но созданная мной модель не проходит:
var paypal = new PayPalModel();
paypal.cmd = "_xclick";
paypal.item_number = "xyz";
paypal.item_name = "Course Name Here";
paypal.amount = "1";
paypal.currency_code = "USD";
paypal.no_shipping = 1;
paypal.actionURL = "https://www.paypal.com/cgi-bin/webscr";
paypal.business = "xxx@xxx.com";
paypal.cancel_return = "http://localhost:xxx/Misc/cancel";
paypal.@return = "http://localhost:xxx/Misc/thankyou";
paypal.notify_url = "http://localhost:xxx/Misc/done";
Так что я думалЯ передал бы все вышеупомянутые значения как директивы @page (не уверен, что это то, что он называется).
return RedirectToPage("ValidateCommand", new {cmd = "_xclick", item_number = "xyz", item_name = "Course Name Here", amount = "1", currency_code="USD", no_shipping=1, actionURL = "https://www.paypal.com/cgi-bin/webscr", business = "testJohn@SurfJohn.com", cancel_return = "http://localhost:50061/Misc/cancel", @return = "http://localhost:50061/Misc/thankyou", notify_url = "http://localhost:50061/Misc/done" });
И в моем "ValidateCommand.cshtml" я получил это, я взял пример Model из приложения MVCУ меня это работает.
@ page "{cmd} / {item_number} / {amount} / {currency_code} / {no_shipping} / {acitonURL} / {business} / {cancel_return} / {@ return}/ {notify_url} "
@ model OESAC.Models.PayPalModel
<form id="hiddenform" action=@RouteData.Values["actionURL"]>
@Html.HiddenFor(model => model.cmd)
@Html.HiddenFor(model => model.business)
@Html.HiddenFor(model => model.no_shipping)
@Html.HiddenFor(model => model.@return)
@Html.HiddenFor(model => model.cancel_return)
@Html.HiddenFor(model => model.notify_url)
@Html.HiddenFor(model => model.currency_code)
@Html.HiddenFor(model => model.item_name)
@Html.HiddenFor(model => model.amount)
@Html.HiddenFor(model => model.item_number)
<input hidden value="@RouteData.Values["cmd"])" />
<input hidden value="@RouteData.Values["business"])" />
<input hidden value="@RouteData.Values["no_shipping"])" />
</form>
PayPalModel осталась от моего приложения MVC.Но в моих страницах Razor его не существует.Я надеялся, что смогу заменить model => model.item_number своей новой моделью или значениями маршрута или строки запроса.Что-нибудь.Эти значения отправляются в PayPal, чтобы пользователь мог произвести оплату.Это работает для приложения MVC, которое у меня есть, а также для приложения веб-форм vb.net.
Это ошибка, которую я получаю: «InvalidOperationException: ни одна страница с именем« ValidateCommand »не соответствует предоставленным значениям».