PDA

View Full Version : مبتدی: علت خطای زیر



crazy_1892
چهارشنبه 31 اردیبهشت 1393, 00:35 صبح
ClientScript.RegisterStartupScript(typeof(Page), "ClientScript", "<script language='javascript' type='text/javascript'> postRefId('" + resultArray[1] + "');</script> ", false);

با سلام
زمانی که از دستور بالا استفاده میکنم خطای زیر را می دهد

Error 5 The name 'ClientScript' does not exist in the current context


علت خطا چیست؟

crazy_1892
پنج شنبه 01 خرداد 1393, 14:10 عصر
سلام کسی از دوستان جوابی نداره شاید بد بیان کردم

تو asp با استفاده از این تابعی که در بالا نوشته شده است جهت فراخوانی فانکشن(در پایین هست) برای اتصال به بانک ملت استفاده می شد



<script type="text/javascript">
function postRefId(refid) {
var form = document.createElement("form");
form.setAttribute("method", "POST");
form.setAttribute("action", " https://bpm.shaparak.ir/pgwchannel/startpay.mellat");
form.setAttribute("target", "_self");
var hiddenField = document.createElement("input");
hiddenField.setAttribute("name", "RefId");
hiddenField.setAttribute("value", refid);
form.appendChild(hiddenField);
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
}///متد فرم
</script>


حالا تو mvc باید چیکار کنم

kavayo
جمعه 02 خرداد 1393, 16:29 عصر
اگر این کد رو در صفحه غیر master نوشتی به صورت ....Page.Clientscript تغییر بده

crazy_1892
شنبه 03 خرداد 1393, 19:04 عصر
تو mvc اصلا page را شناسایی نمیکنه

مهدی کرامتی
شنبه 22 شهریور 1393, 08:53 صبح
سلام.

مشکل این است که شما در MVC با تفکر Web Form در حال برنامه نویسی هستید. در Web Forms اگر می خواستیم از طریق Code Behind اسکریپتی را به صفحه اضافه کنیم که بلافاصله بعد از لود شدن صفحه اجرا شود میبایست از ClientScript.RegisterStartupScript استفاده می کردیم.

در MVC کلا مدل گردش کار فرق می کند. چیزی به نام Page دیگر وجود ندارد. تنها چیزهایی که داریم Controller است و View (به جای Code Behing و Page). اگر می خواهید مقداری را از Controller به View بفرستید از امکانات ویژه این کار در MVC استفاده کنید.

بنا بر صورت مسئله ای که می بینم می خواهید مقادیری را از کنترلر به View بفرستید جهت ارسال توسط یک اسکریپت به بانک ملت.

کافی است مقادیر RefID و value را در کنترلر در ViewBag قرار دهید و در یک View جدید که مخصوص هدایت کاربر به بانک تعبیه شده است مقادیر را این گونه از ViewBag بخوانید و فرم را Submit کنید:


<script type="text/javascript">
var form = document.createElement("form");
form.setAttribute("method", "POST");
form.setAttribute("action", " https://bpm.shaparak.ir/pgwchannel/startpay.mellat");
form.setAttribute("target", "_self");
var hiddenField = document.createElement("input");
hiddenField.setAttribute("name", "@ViewBag.RefID");
hiddenField.setAttribute("value", "@ViewBag.Value");
form.appendChild(hiddenField);
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
</script>

امضای تابع نیز حذف شده است تا اسکریپت بلافاصله اجرا شود. در سمت کنترلر کافی است دو مقدار اشاره شده را در ViewBag قرار دهید و View فوق را نمایش دهید:


public ActionResult MellatPayment()
{
ViewBag.RefID = "....";
ViewBag.Value = ".......";
return View("نام فایل ویو که ساخته اید را اینجا بگذارید");
}

EhsanAvr
سه شنبه 18 آذر 1393, 10:21 صبح
آموزش کامل ارتباط با درگاه بانک ملت در ASP.NET Web Forms و ASP.NET MVC (http://ehsanavr.com/15646/videography/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%d8%a7%d8%b1%d8%aa%d8%a8%d8%a7%d8%b7-%d8%a8%d8%a7-%d8%af%d8%b1%da%af%d8%a7%d9%87-%d8%a8%d8%a7%d9%86%da%a9-%d9%85%d9%84%d8%aa-%d8%af%d8%b1-asp-net/)

spicirmkh
یک شنبه 24 اسفند 1393, 17:53 عصر
public ActionResult MellatPayment()
{
ViewBag.RefID = "....";

ViewBag.Value = ".......";

return View("نام فایل ویو که ساخته اید را اینجا بگذارید");
}





مقادبر ViewBag.Value و ViewBag.Value چی باید فرار بدهیم



if (res[0] == "0")
{
// db.UpdatePayment("پرداخت نشده", res[1], "", payment_id.Value);
ViewBag.RefID = res[0];
ViewBag.Value = res[1];
return View();

}