PDA

View Full Version : سوال: استفاده از PartialView در لود شدن بخشی از صفحه



OmMiD_MtWo
چهارشنبه 23 فروردین 1396, 08:45 صبح
سلام
در یک پنل ادمین که بخش منو و هدر آن ثابت است و تنها بخش main آن تغییر میکند. قصد دارم تا با استفاده از jquery و PartialView (PartialAction) هنگامی که کاربر بر روی هر یک از لینکهای مربوط به منو کلیک میکند، تنها بخش main که قرار است اطلاعات صفحه تغییر کند را فراخوانی کنم. در حقیقت قصد دارم تا بدون Refresh شدن صفحه، محتوای یک بخش خاص توسط سرور فراخوانی شود و صفحه بروز شود. کدهای jquery به صورت زیر:
$('a').click(function(e){
e.preventDefault();
window.load('AdminController/PartialView');
});

کد سمت سرور هم به صورت زیر است:
public PartialActionResult PartialView(){
return view('PartialView');
}



سوالم این هست که به نظر شما اساتید عزیز، این روش صحیح است؟ یعنی از لحاظ امنیت، کارایی، ارسال مدل از کنترلر و اکشن به ویو و برعکس، نمایش errorهای مربوط به validation، راحتی کاربر و دیگر موارد برای اینکه کاربر درگیر Refresh شدن صفحه نشود، این روش رو میپسندید یا روشهای دیگری مد نظر شما است؟
ممنون میشم نظرتون رو بگید و تجربه تون رو دراختیارم قرار بدید.
باتشکر

LostOfMind
چهارشنبه 23 فروردین 1396, 10:03 صبح
از ایجکس استفاده کن
ابتدا به تگ main یک ID بده



<div id="main"></div


تابع:



function loadpage(url)
{
$.ajax({
type: 'get',
url: url,
datatype: 'html',
success: function (data) {
$("#main").html(data);
},
})
}

و بعد روی onclick این تابع رو فراخوانی کنید



<a href="#" onclick="loadpage('@Url.Action("action","Controller")')">click</a>

OmMiD_MtWo
چهارشنبه 23 فروردین 1396, 13:23 عصر
یعنی شما روشی که من استفاده کردم رو پیشنهاد نمیکنید؟ شما فرض کنید، داده ای قرار نیست بین سرور و کلاینت رد و بدل شه و فقط قراره محتوای یک بخش از صفحه، از یک ویوی دیگه خوانده شه بدون اینکه صفحه Refresh شه. باز هم Ajax رو پیشنهاد میکنید؟ قصدم اینه بدونم روشی که من استفاده کردم منطقی هست یا خیر؟ در حقیقت، عملکرد پیشفرض کلیک بر روی لینک قراره تغییر کنه تا صفحه Refresh نشه.