PDA

View Full Version : فراخوانی بیش از یکبار Action page توسط مرورگر



Wily_Fox
چهارشنبه 04 اردیبهشت 1392, 17:51 عصر
با سلام و خسته نباشید

داخل یکی از Action های page تولید کد امنیتی رو قرار دادم.

هنگامی این Action رو فراخونی می کنم خود به خود 2 بار فراخونی میشه و باعث میشه هربار دو تا کد تولید بشه.

مشکل از چی میتونه باشه.

تابع ایجاد کد:

private string CreateSecurityImage()
{
try
{
SecurityCode securityCode = new SecurityCode();
string FileName = null;
Image img = securityCode.GetNewSecurityCode(ref FileName);

string path = Server.MapPath("~/Content/image/Security/" + FileName + ".jpg");
img.Save(path, ImageFormat.Jpeg);
return FileName;
}
catch { return null; }
}


اکشن مورد نظر:

public ActionResult Content(int id)
{
if (ModelState.IsValid)
{
if (id > 10)
{
try
{
var securityCode = new SecurityCodeModel
{
Text = CreateSecurityImage(),
Value=null
};

...

return View(model);

}
catch { }
}
}
return RedirectToAction("Index", "Home");
}


فراخونی یعنی اینکه تو Url مرورگر، آدرس page رو قرار بدم و Enter بزنم 2 تا کد تولید میکنه.
بدون هیچ خطایی دو بار این عمل اتفاق می افته.
مثل اینکه دو بار refresh کرده باشی

mo.esmp
چهارشنبه 04 اردیبهشت 1392, 19:14 عصر
شاید کدهای سمت View باعس اینکار بشن

amir-yeketaz
چهارشنبه 04 اردیبهشت 1392, 19:26 عصر
من یه بار یکیو دیدم که یه همچین مشکلی داشت! اونم سر یه پلاگین گوگل کروم بود! ... تو مرورگرهای مختلف چک کنید

Wily_Fox
چهارشنبه 04 اردیبهشت 1392, 19:33 عصر
شاید کدهای سمت View باعس اینکار بشن

کدهای سمت View مشکلی ندارند.

Wily_Fox
چهارشنبه 04 اردیبهشت 1392, 19:34 عصر
من یه بار یکیو دیدم که یه همچین مشکلی داشت! اونم سر یه پلاگین گوگل کروم بود! ... تو مرورگرهای مختلف چک کنید

گمان نکنم فرقی بکنه. چک نکردم. الان چک کنم ببینم فرقی می کنه.

Wily_Fox
چهارشنبه 04 اردیبهشت 1392, 19:39 عصر
من یه بار یکیو دیدم که یه همچین مشکلی داشت! اونم سر یه پلاگین گوگل کروم بود! ... تو مرورگرهای مختلف چک کنید

خوب مشخص شد با عوض کردن مرورگر درست شد. مرورگر اول اول گوگل کروم بود. الان با اپرا چک کردم مشکلی نداره.

درضمن با safari و firefox هم همین مشکل وجود داره.



چیکار می تونم بکنم این مشگل رفع بشه؟

Wily_Fox
چهارشنبه 04 اردیبهشت 1392, 19:51 عصر
شاید کدهای سمت View باعس اینکار بشن

دوست عزیز متشکرم. پاسخ شما باعث شد چک کنم.

بله مشکل از کدهای سمت View هستش

Wily_Fox
چهارشنبه 04 اردیبهشت 1392, 20:09 عصر
این تکه از کد



style="background-image:url('@Model.LogoModel.LogoImageUrl');"


باعث همچین مشکلی میشه.
من اینطوری ازش استفاده کردم:


<div id="Logo" style="background-image:url('@Model.LogoModel.LogoImageUrl');">
<p>@Model.LogoModel.LogoSubject</p>
</div>


چرا باعث میشه دوبار رفرش بشه؟

mo.esmp
پنج شنبه 05 اردیبهشت 1392, 01:59 صبح
خوب ٢بار رفرش شدن با ٢بار تولید شدن باید فرق داشته باشه. اگه سفحه ٢بار رفرش میشه باید دنبال کد جاوا اسکریپتی چیزی (البته اگه استفاده کردی) باشی و یا تگ meta. بهترین کار اینه جاهایی که بهشون مشکوکی چه تو View و چه تو Action براشون breakpoint بزاری و ببینی چه اتفاقی میوفته.