ably ably برای هدایت شدن به سایت جدید اینجا کلیک کنید

آموزش برنامه نویسی

آموزش برنامه نویسی وب، اندروید، ویندوز , اسکیوال و...
Tell: 0912 097 5516
| Email: Hello@EduOnline.ir

۷ مطلب با کلمه‌ی کلیدی «آموزش ASP.NET MVC» ثبت شده است

jQuery ajax در ASP.NET MVC

بسم الله الرحمن الرحیم

                     

 ارسال چندین فرم به صورت HttpPost

در بسیاری از فرم ها و صفحات شما نیاز دارید که اطلاعات را به چندین فرم مختلف ارسال کنید، در  ASP.NET MVC انجام این کار بسیار ساده خواهد بود زیرا شما می توانید فرم های زیادی را در صفحه ایجاد کنید. اما اگر قرار باشد Button های مختلفی کنار یکدیگر قرار گیرند و هر یک اطلاعات خود را به فرمی خاص ارسال کنند، این کار ساده نخواهد بود.

به طور مثال Grid زیر را در نظر بگیرید:

ما می خواهیم وقتی بر روی هر یک از Button های بالا کلیک می کنیم، اطلاعات خاصی را برای Action های خود به صورت HttpPost ارسال کنیم.

Action  های ما نیز به صورت زیر خواهند بود:

[HttpPost]
public ActionResult Improve(long id)
{
   //My code is here....
}

[HttpPost]
public ActionResult Edit(long id)
{
   //My code is here....
}

[HttpPost]
public ActionResult Disable(long id)
{
   //My code is here....
}

[HttpPost]
public ActionResult Delete(long id)
{
   //My code is here....
}

ادامه مطلب...

جستجو در LINQ

بسم الله الرحمن الرحیم

جستجو یک لیست در عناصر لیست دیگر

روش های زیادی برای انجام یک کار وجود دارد و در بسیاری از مواقع تمامی این روش ها شما را به مقصودتان می رساندد اما طبیعتا همه ی آنها روش  درست نیستند. یکی از موارد زیادی که ممکن است برای شما نیز اتفاق بیافتد جستجو کردن یک لیست از اطلاعات درون یک لیست دیگر است طبیعتا اولین راه حل نوشتن یک حلقه (for, foreach, while, ,...) و بررسی تک تک عناصر مجموعه اول در مجموعه دوم است.

در اینجا با یک کد بسیار ساده LINQ (لینک تلفظ می شود) می توانیم این بررسی را انجام دهیم.

تصور کنید یک لیست از کاربران خود را با یک شرط مشخص از پایگاه داده واکشی می کنیم. مثلا تمامی کاربرانی که فیلد enable آنها true است.


using (ContextDB contextDB = new ContextDB())
{

var listOfUserID = contextDB.Users.Where(x => x.Enabled == true).Select(x => x.UserID).ToList();
List<Student> StudentUsers = contextDB.Students.Where(x => listOfUserID.Contains(x.UserID)).ToList();

foreach (var item in StudentUsers)
{
      Response.Write(item.FirstName);
}

}

ادامه مطلب...

خطای This project references NuGet package

بسم الله الرحمن الرحیم

خطای This project references NuGet package

در صورتی که با اجرای پروژه به خطای زیر برخورد نمودید:

The missing file is ..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets.

دلیل این خطا کدهای زیر در فایل csproj می باشد که راه حل های موجود را بررسی خواهیم کرد.

 <Import Project="..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" />
  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" />
  </Target>

راه حل های پیشنهادی

1-  بر روی Solution خود راست کلیک کرده و گزینه Enable NuGet Package Restore را فعال کنید.

2- این مشکل می تواند عدم تطابق نسخه Nuget نصب شده شما با نسخه Nuget معرفی شده در Visual Studio می باشد بنابراین می توانید به صورت زیر عمل کنید:

 <Import Project="..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" />

کد بالا را به کد زیر تبدیل کنید.

 <Import Project="..\packages\Microsoft.Bcl.Build.1.0.21\tools\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" />

ادامه مطلب...

آموزش migration و Entity Framework در Code First

بسم الله الرحمن الرحیم

در دوره های گذشته آموزش های Code First را ارائه داده ایم که می توانید از طریق لینک زیر مطالعه بفرمایید

آموزش Code First

آموزش migration  و Entity Framework  در Code First

روش Code First به شما اجازه می دهد تا از روی کلاس های خود Table های پایگاه داده را ایجاد کنید. مثلا شما یک کلاس برای ثبت نام افراد ایجاد می کنید و Property ها این کلاس را (نام، نام خانوادگی و...) تعریف می کنید، سپس به وسیله Migration شما می توانید از روی این کلاس Table مورد نظر خود را ایجاد کنید.


Migration کلاس شما را که Model خوانده می شود به وسیله ابزاری که درVisual Studio 2013  و  Visual Studio 2012با نام Package Manager Console قرار داده شده است تبدیل به Table های پایگاه داده می کند. وقتی شما می خواهید پایگاه داده خود را به وسیله Migration ایجاد کنید، چند انتخاب پیش روی شما قرار خواهد گرفت.

CreateDatabaseIfNotExists

با انتخاب این گزینه تنها اگر پایگاه داده شما وجود نداشته باشد، پایگاه داده شما به وجود خواهد آمد، اینکار باعث می شود که اگر قبلا پایگاه داده خود را ایجاد کرده اید، پایگاه داده شما از تغییرات محافظت شود.

DropCreateDatabaseWhenModelChanges

انتخاب این گزینه باعث می شود که اگر شما تغییری بر روی Model  (کلاس سی شارپ) خود ایجاد کنید پایگاه داده شما هم بر روز شود مثلا اگر Property ایی با نام Name را به FirstName تغییر دهید، این تغییر بر روی دیتابیس نیز اعمال می شود. این گزینه برای زمان توسعه و تست سیستم ها بسیار مناسب است زیرا تغییرات به صورت خودکار بر روی پایگاه داده اعمال می شود.

از دستور زیر نیز می توانید استفاده کنید این دستور معادل DropCreateDatabaseWhenModelChanges می باشد.

Database.SetInitializer(new DropCreateDatabaseIfModelChanges<Context>());

ادامه مطلب...

کاهش حجم پروژه های MVC با استفاده از RestorePackage

بسم الله الرحمن الرحیم


در بسیاری از مواقع ممکن است شما بخواهید یک پروژه ASP.NET MVC را از طریق اینترنت برای افراد دیگر ارسال کنید. متاسفانه به دلیل پایین بودن سرعت اینترنت و هزینه اینکار، شاید این میسر نباشد.
اما اگر دقت کنید یک پروژه ASP.NET MVC به تنهایی حجمی ندارد (البته پروژه های کوچک و معمولی) و بیشتر حجم پروژه مربوط به package ها می شود.
راه حل این کار بسیار ساده است، کافی است پروژه را بدون Package های آن برای افراد دیگر ارسال کنید. این یکی از مزیت های استفاده از Nuget می باشد که باعث کاهش حجم پروژه می شود.

هر فردی که بخواهد پروژه را اجرا کند می بایست از طریق منوی Project گزینه Manage NuGet Packages را انتخاب کند و سپس از پنجره Manage NuGet Packages بر روی Restore کلیک کند تا Package هایی که حذف شده اند بازیابی شوند.

ادامه مطلب...

webgrid به صورت Ajax

بسم الله الرحمن الرحیم

آموزش طراحی یک وب گرید به صورت Ajax

در این آموزش می خواهیم روش ساخت یک WebGrid را به صورت Ajax بررسی کنیم.

برای ساخت یک WebGrid به صورت Ajax باید پارامتر ajaxUpdateContainerId را مقدار دهی کنیم، معمولا container مانند زیر باید یک DIV باشد.
 

    WebGrid grid = new WebGrid(
    // Other code is removed for clarity
    ajaxUpdateContainerId: "container-grid"
    );
     
    <div id="container-grid">@grid.GetHtml(
    fillEmptyRows: true,
    alternatingRowStyle: "alternative-row",
    headerStyle: "header-grid",
    footerStyle: "footer-grid",
    mode: WebGridPagerModes.All,
    ...
    })</div>

ما همچنین می توانیم Id وب گرید را به پارامتر ajaxUpdateContainerId با متد GetHtml که توسط htmlAttributes تولید شده است، ارائه دهیم. من از این روش استفاده کردم.

ادامه مطلب...

قرارداد های MVC

بسم الله الرحمن الرحیم

آموزش ASP.NET MVC

ما در MVC  دو نوع قرارداد داریم در نوع اول قرارداد ها اختیاری هستند مثل قراردادن فایلهای تصاویر و.. در پوشه content، در صورتی که اینکار را انجام ندهید هیچ مشکل پیش نخواهد آمد. قرارداد های نوع دوم که به Convention Over Configuration معروف هستند، به این معنی که قرارداد بر پیکربندی ارجحیت دارد در این نوع قرارداد هاکه باعث راحتی کاربر می شود و این روش از Ruby and Rails گرفته شده است؛ شما نیازی ندارید که ارتباط بین کنترلر و View را مشخص نمایید.

کلاس کنترلر با کلمه Controller ختم می شود و route  ها یا HTML Helper ها فقط تا قبل از کلمه Controller اسم را می خوانند. Viewها و  partial viewها باید در پوشه ای با نام کنترلر خود قرار گیرند، البته باز هم نام کنترلر بدون قسمت Controller آن. نام اکشن ها باید همان نام View ها باشد.

نیاز به ذکر پسوند فایل های View  نیست خود موتور مورد استفاده می تواند تشخیص دهد که باید به دنبال چه پسوندی بگردد.(Razor بدنبال cshtml و aspx به دنبال aspx).  در زمان جستجو View ها ابتدا بدنبال view های قرار گرفته در پوشه هم نام با کنترلر و سپس در پوشه Shared، بدین معنا که باید viewهایی که چند جا فراخوانی می شوند را دراین پوشه قرار دهید.

برای نام گذاری قالب ها باید نام آن را با کاراکتر underline، "_"  شروع کنید و سپس در پوشه Shared قرار دهید. اگر viewایی قالب نداشته باشد به صورت پیش فرض قالب _Layout.cshtml به تمام view ها اعمال می شود این فرایند از طریق فراخوانی در فایل view/_viewStart.cshtml اعمال می شود. اگر می خواهید قالب خودتان را اعمال کنید کافی است دستور زیر را در فایل Layout.cshtml_ بنویسید:


@
{

            Layout = “~/Views/Shared/MyLayout.cshtml”;

}

 

up
ما را در گوگل محبوب کنید