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

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

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

۳۸ مطلب با کلمه‌ی کلیدی «MVC» ثبت شده است

ASP.NET vNext

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

معرفی ASP.NET vNext


مایکروسافت نسل جدیدی از ASP.NET را در TechEd North America در تاریخ اعلام 12 May 2014 اعلام کرد که این محصول جدید ASP.NET vNext نام دارد.  ASP.NET vNext شامل امکانات جدیدی همچون نسخه MVC6 که برای Cloud بهینه سازی شده است و Web API3،Web Pages4, SignalR3  و Entity Framework7 است.

 ویژگی های ASP.NET vNext

ASP.NET vNext  شامل امکانات جدیدی همچون نسخه MVC6 که برای Cloud بهینه سازی شده است  Web API, Web Pages, SignalR و Entity Framework است.
 

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

Cache کردن اطلاعات ASP.NET MVC

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

در این بخش قصد داریم نحوه افزایش سرعت بارگذاری صفحات در ASP.NET MVC را بررسی کنیم.

افزایش سرعت صفحات در ASP.NET MVC

برای افزایش کارایی برنامه های تحت وب Cache کردن اطلاعات بسیار مهم است. کش کردن اطلاعات یک راه برای ذخیره سازی اطلاعاتی است که مجددا باید مورد دسترسی قرار می گیرند. در عمل این یک راه موثر برای افزایش کارایی وب سایت ها است.

مزایای کش کردن اطلاعات


کاهش میزبانی اطلاعات بر روی سرور

هنگامی که شما اطلاعات را بر روی کلاینت یا پروکسی کش می کنید، عملا سرور شما درخواست های کمتری را باید پاسخ دهد.

کاهش فشار بر روی پایگاه داده

وقتی شما اطلاعات را در وب سرور کش کنید، می توانید درخواست ها را از دیتابیس حذف کنید.

کاهش ترافیک شبکه

هنگامی که شما اطلاعات را بر روی کلاینت کش می کنید، ترافیک شبکه شما کاهش پیدا می کند.

حذف زمان ها برای بازیابی اطلاعات تکراری

زمان هایی که صرف استفاده از اطلاعاتی که چندین بار مورد درخواست  قرار خواهند گرفت، حذف می شود

افزایش کارایی

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

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

ساخت یک Timer با استفاده از setInterval برای صفحات وب

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

در بسیاری از مواقع شما نیاز دارید در صفحات وب خود از یک تایمر برای اجرا و تکرار دستورات استفاده کنید، در ASP.NET می توانستید از یک Timer در پنل های Ajax استفاده کنید اما در ASP.NET MVC باید این مشکل را به صورت زیر حل کنید:

متد setInterval

این متد بر اساس پارمتر خود که یک عدد integer و با واحد زمانی میلی ثانیه است،  دستورات مشخص شده ای را اجرا می کند.

var retval = window.setInterval(expression, msec, language); 

پارامتر expression

نوع پارامتر: Variant
توضیح : یک Pointer یا یک String است به متد یا دستوراتی که باید در هر بار اجرا شدن تایمر، فراخوانی و اجرا شوند.

پارامتر msec

نوع پارامتر: Integer

توضیح : بازه های زمانی تکرار این تایمر را مشخص می کند که  بر اساس میلی ثانیه می باشد.

پارامتر language (اختیاری)
نوع پارامتر: Variant

پارامتری اختیاری است که یکی از مقادیر خاصیت Language را می تواند دریافت کند.
Return value
Type: Integer
توضیح : یک عدد Integer که مشخص می کند تایمر توسط متد clearInterval متوقف شده است.

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

آموزش Code First Data Annotations

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

 برای مشاهده بخش های دوره آموزش Code First Data Annotations از طریق لینکهای زیر اقدام نمایید.

بخش اول

بخش دوم

بخش سوم

بخش چهارم

آموزش Code First

بخش اول

Data Annotations

در طراحی پایگاه داده به وسیله Entity Framework  در MVC برای مشخص کردن خصوصیت های جداول و فیلدها می بایست از خاصیتی به نام Data Annotations استفاده کنید. کار با این خصوصیت بسیار ساده می باشد.
ما دو کلاس را برای پروژه خود نیاز داریم، این دو کلاس را با نام های Blog.cs و Post.cs در فولدر Model پروژه MVC خود ایجاد می کنیم و کد های زیر را در آن ها قرار می دهیم.

public class Blog 
{
public int Id { get; set; }
public string Title { get; set; }
public string BloggerName { get; set;}
public virtual ICollection<Post> Posts { get; set; }
}

public class Post
{
public int Id { get; set; }
public string Title { get; set; }
public DateTime DateCreated { get; set; }
public string Content { get; set; }
public int BlogId { get; set; }
public ICollection<Comment> Comments { get; set; }
}

Key 

تعیین کلید اصلی جداول

Entity Framework برای ایجاد کلید اصلی جدول شما در دیتابیس، در مدلی که طراحی کردید به دنبال نام Id و یا نام کلاس شما به علاوه کلمه Id (مثلا BlogId) می گردد، هر یک از این دو پراپرتی در صورتی که در کلاس شما وجود داشته باشد تبدیل به کلید اصلی در جدول پایگاه داده می شود.

در صورتی که هیچ یک از این دو کلمه در کلاس مدل شما وجود نداشته باشد Entity Framework یکexception  برای این مورد throw می کند. برای حل این مشکل کافی است از خاصیتی به نام [Key]در بالای فیلد کلید خود استفاده کنید.
مثلا ما می خواهیم در اینجا نام کلید اصلی خود راPrimaryTrackingKey قرار دهیم پس باید کد خود را به صورت زیر تغییر دهیم.

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

T4MVC

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

 معرفی T4MVC

T4MVC می تواند بر روی نسخه های Visual Studio 2010, 2012  و  2013نصب شود وASP.NET MVC 4.0  و  5.0این Package را پشتیبانی می کنند، شاید بتوانید بر روی سایر نسخه ها از این Package استفاده کنید اما این Package فقط بر روی گزینه های گفته شده تست شده است.

 

نصب T4MVC

برای نصب این Package کافی است که دستور زیر را از طریق Package Manager Console اجرا کنید

Install-Package T4MVC

پس از اجرای این دستور دو فایل به پروژه شما اضافه می شود.

هدف T4MVC

این Package برای جلوگیری از نوشتن اسامی کنترلر ها و اکشن ها و در نهایت view ها به صورت Hard Code مورد استفاده قرار می گیرد.

برای مثال کدزیر را در نظر بگیرید:

<% Html.RenderPartial("DinnerForm"); %>

 

ما از عبارت های رشته ای برای فراخوانی این Partial استفاده کرده ایم، اگر فردا شما بخواهید این نام را تغییر دهید باید در بهترین و سریعترین روش ممکن با استفاده از Finde ویژوال استادیو تمامی نام های مربوطه را تغییر دهید.

اما چرا از ابتدا از روش دیگری استفاده نکنیم!

T4MVC در واقع نام تمامی View,Conreoller,Action ها را به صورت خودکار در خود ذخیره می کند و عملا یک Enumeration  برای شما به وجود می آورد تا در آینده در صورتی که نامی را برای یک View,Conreoller,Action عوض کردید، این نام در تمامی پروژه عوض شود.

مثال:

<% Html.RenderPartial("DinnerForm"); %>

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

 

<% Html.RenderPartial(MVC.Dinners.Views.DinnerForm); %>

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

fluent API در Code First

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

fluent API

در MVC برای ایجاد روابط بین جداول می توانید از fluent API استفاده کنید، این روش برای کد نویسی و طراحی دیتابیس به روش Code First می باشد:

One-to–Zero-or-One (روابط یک به یک)

modelBuilder.Entity<OfficeAssignment>() 
    .HasKey(t => t.InstructorID);

به رابطه بالا One-to–Zero گفته می شود زیرا شما فقط کلید اصلی جدول را مشخص کرده اید آن را به هیچ جدول دیگری ارتباط نداده اید.

modelBuilder.Entity<OfficeAssignment>() 
    .HasRequired(t => t.Instructor)
    .WithOptional(t => t.OfficeAssignment);

در این رابطه ما یک رابطه One-to-One ایجاد کرده ایم. در این رابطه سمت OfficeAssignment اختیاری است.

برای اجباری کردن هر دو سمت در یک رابطه یک به یک می توانید به صورت زیر عمل کنید:

modelBuilder.Entity<OfficeAssignment>() 
    .HasKey(t => t.InstructorID);
 
modelBuilder.Entity<Instructor>()
    .HasRequired(t => t.OfficeAssignment)
    .WithRequiredPrincipal(t => t.Instructor);

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

Strongly typed

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

Strongly typed

زبان های Strongly typed به شما اجازه نمی دهند که از یک نوع به نام یک نوع دیگر استفاده کنید. مثلا string به int

در Strongly typed به صورت اتوماتیک یک نوع به نوع دیگر تبدیل نمی شود. مثلا در زبان Perl می توانید یک رشته

شامل "123" در یک numeric قرار دهید و این به صورت اتوماتیک تبدیل به 123 می شود اما زبان های strongly typed این کار را انجام نمی دهند مثلا python یک زبان strongly typed است.

طبیعتا خطاهای زیادی را در هنگام کار کردن با سی شارپ مخصوصا LINQ در ارتباط با strongly typed مشاهده کردید:

مثال

var answer = 1 * "1";

این دستور اجرا نمی شود، بلکه شما باید خودتان به صورت صریح تبدیل نوع را انجام دهید.
اما در PHP دستور زیر اجرا می شود:

$x = "3" * 1; // is correct in php

بروز رسانی دیتابیس و خطا One or more validation errors were detected during model generation

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

بروز خطای

An exception of type 'System.Data.Entity.ModelConfiguration.ModelValidationException' occurred in EntityFramework.dll but was not handled in user code

 Additional information: One or more validation errors were detected during model generation:

 

 یا خطای

One or more validation errors were detected during model generation:

پس از اجرای کد زیر

db.Database.Initialize(true);

 

 برای رفع این خطا کافی است که پایگاه داده خود را با استفاده از دستور

Update-database –force

بروز نمایید.

این خطا به این دلیل است که اگر Migration بخواهد جداول شما را تغییر دهد اطلاعات شما به دلیل حذف شدن فیلد یا فیلدهایی از بین خواهد می رود؛ به همین دلیل این کار را بر عهده خودتان قرار می دهد (سلب مسئولیت )

آموزش Asp.net Identity

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

برای شروع کار Visual Studio را باز کنید سپس New-> project را انتخاب کنید و در پنجره باز شده مانند زیر NET framework 4.5 را انتخاب کنید و سپس بر روی گزینه ASP.NET Web Application  کلیک کنید.

Asp.net Identity

حال گزینه Emprty را انتخاب کنید و سپس نوع پروژه را از بخش پایین MVC انتخاب نمایید تا پروژه شما ایجاد شود.

آموزش Asp.net Identity

حال پروژه شما ایجاد شده است و کافی است در پنجره Package Manager Console دستور زیرا برای ساخت یک پروژه ASP.NET Identity ایجاد کنید.

Install-Package Microsoft.AspNet.Identity.Samples -Pre 

مدت زمان زیادی را باید منتظر بمانید زیرا تمامی package های زیر توسط این دستور نصب خواهد شد

bootstrap (≥ 3.0.0)

Microsoft.Aspnet.Identity.Core(≥ 2.1.0-alpha1)

Microsoft.Aspnet.Identity.EntityFramework(≥ 2.1.0-alpha1)

Microsoft.Aspnet.Identity.Owin(≥ 2.1.0-alpha1)

Newtonsoft.Json(≥ 5.0.6)

Microsoft.Aspnet.Mvc(≥ 5.1.1.0)

Microsoft.Aspnet.Web.Optimization(≥ 1.1.3)

jQuery(≥ 1.10.2)

jQuery.Validation(≥ 1.11.1)

Modernizr
(≥ 2.6.2)

Microsoft.Owin.Host.SystemWeb
(≥ 2.1.0)

Microsoft.Owin.Security
(≥ 2.1.0)

Microsoft.Owin.Security.Facebook(≥ 2.1.0)

Microsoft.Owin.Security.Cookies(≥ 2.1.0)

Microsoft.Owin.Security.Google(≥ 2.1.0)

Microsoft.Owin.Security.Twitter
(≥ 2.1.0)

Microsoft.Owin.Security.MicrosoftAccount(≥ 2.1.0)

Microsoft.jQuery.Unobtrusive.Validation
(≥ 3.1.1)

Respond
(≥ 1.2)

اگر خطایی در ارتباط با Timeout در خصوص پایین بودن سرعت اینترنت خود دریافت کردید مجددا دستور بالا را اجرا کنید تا فایلهای دانلود نشده، دانلود شوند، نگران نباشید فایل ها بر روی یکدیگر جایگزین خواهد شد.

حال به سادگی می توانید کد های مایکروسافت را برای استفاده از ASP.NET Identity بررسی کنید و بیشتر با این معماری آشنا شوید.

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

Entity Farmework و Code First

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

 

برای طراحی پایگاه داده به وسیله Entity Farmework  و Code First بهتر است این چند نکته را رعایت فرمایید:

 

بهتر است از نام Id به عنوان نام تمامی کلید های اصلی جداول استفاده کنید هر چند در بحث

convention over configuration این نکته مورد قبول است اما چیزی را که همه آن را به عنوان یک قرارداد نانوشته قبول دارند را عوض نکنید تا برای انجام کار توضیحاتی لازم نباشد.

بهتر است از نوع GUID برای کلید های اصلی جداول استفاده کنید. نوع int از لحاظ واکشی اطلاعات سریعتر است زیرا مقایسه عددی سریعتر از مقایسه رشته ای است.

باید در نظر داشته باشید در جداولی مثل شهر، استان، کشور می توانید از نوع int برای کلید اصلی استفاده کنید و هیچ مشکلی نخواهد بود اما بهتر است برای جداول اطلاعاتی که شماره ها بسیار ارزشمند هستند و بهتر است در کل دیتابیس عدد منحصر به فرد باشد از نوع GUID استفاده شود.

بهتر است نام کلیدهای خارجی یک نام از جدول + کلمه ای دی باشد:

مثلا: ProductId

برای تعیین نامی مشخص برای ذخیره property ها در دیتابیس می توانید به صورت زیر عمل کنید:

 

 [Column(“ProductId", TypeName="Guid")] 

 

با توجه به اینکه در MVC به صورت پیش فرض اگر Maxlength برای یک Property String تعیین نشود nvarchar(MAX) در دیتابیس در نظر گرفته می شود، لذا برای تمامی Property مقدار Maxlength را تعریف کنید مگر در شرایطی که نیاز به رشته های طولانی دارید.

با توجه به نحوه ذخیره سازی رشته ها در SQL Server ، اگر یک رشته می تواند در نوع nvarchar(300)  ذخیره شود از این نوع استفاده کنید.

با توجه به اینکه در Entity Framework 6 از روی نوع enum فیلد مناسب در دیتابیس ساخته می شود اما بهتر است فیلدهای از نوع enum به صورت int تعریف شوند و شما خودتان نوع بازیابی شده از دیتابیس را به enum تبدیل کنید.

مثلا

Public int CustomerType {get; set;};

 در نام گذاری property ها این نکته را در نظر داشته باشید که نباید از کلمات کلیدی (SQL Server,Oracle,…) استفاده کنید

مثلا: [Order]

 

بازیابی دیتابیس (Restore) به وسیله EntityFarmework

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

در پروژه های MVC شما نیاز خواهید پیدا کرد که دیتابیسی که به وسیله Entity Framework (معمولا در روش Code First) تغییر پیدا کرده است را به حالت قبل بازیابی کنید.

به ازای هر بار درخواست تغییر دیتابیس توسط EF یک شماره منحصر به فرد ایجاد می شود که می توانید در دیتابیس خود در تیبل Migration__  این پارت ها را مشاهده کنید.

برای برگرداندن دیتابیس خود به مرحله قبل می توانید به صورت زیر عمل کنید:

Update-Database -Target 2556

2556 شماره حالتی است که قبل از اعمال تغییرات ثبت شده بوده است.

برای رفتن اولین مرحله نیز می توانید به صورت زیر عمل کنید:

Update-Database -Target 0



برطرف کردن مشکل LINQ to Entities does not recognize

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

Server Error in '/' Application.


LINQ to Entities does not recognize the method 'EduOnline' method, and this method cannot be translated into a store expression.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

این خطا زمانی رخ می دهد که شما می خواهید یک دستور مشابه دستور زیر اجرا کنید:

db.Accounts.Where(m => m.AccountType == Enum.AccountTypes.Admin

برای حل این مشکل کافی است که کد خود را به صورت یک عبارت مشخص قابل بررسی توسط LINQ تبدیل کنید، مثلا در اینجا می توانید به صورت زیر و خیلی ساده کد خود را بنویسید و مشکل خود را حل نمایید:

db.Accounts.Where(m => m.AccountType == (int)Enum.AccountTypes.Admin)

در اینجا شما با تبدیل عبارت خود به یک به عبارت قابل مقایسه برای LINQ این مشکل را حل کرده اید

اضافه کردن فیلد nullable در دیتابیس با EF

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

اگر بخواهید پراپرتی زیر را به صورت nullable در پایگاه داده ذخیره کنید

[Required]
public int somefield {get; set;}

می بابیست کد خود را به صورت زیر تغییر دهید

[Required]
public int? somefield {get; set;}

علامت "؟" بعدر از نوع متغییر باعث می شود که این متغییر مقدار null را نیز بپذیرد.

همچنین با استفاده از روش Fluid API می توانید اینکار را انجام دهید:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
        modelBuilder.Entity<SomeObject>().Property(m => m.somefield).IsOptional();            
        base.OnModelCreating(modelBuilder);
}

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

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

بسیاری از کارهایی که ما در پروژه ها انجام می دهیم تکراری است از نوشتن یک کد ساده تا نوشتن یک کلاس و حتی خود یک پروژه!!

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

در این آموزش شما را با یک روش ساده برای افزایش نوشتن توابع و متدهای تکراری آشنا خواهم کرد

همه شما حداقل یک بار اینگونه توابع را نوشته اید

 

public void MyMethod()
        {
            try
            {

            }
            catch (Exception exception)
            {
                throw new Exception(exception.Message);
            }
            finally
            {

            }
       }

مثل همیشه مختصر و مفید، می خواهیم کاری انجام دهیم تا دیگر هیچ وقت اینگونه توابع را ننویسیم.

در ابتدا برای آموزش، فکر کنید میخواهید یک حلقه for بنویسید برای این کار، من راه بهتری سراغ دارم.

ابتدا کلمه for را بنویسید و سپس دو بار کامند TAB را بر روی کیبورد خود فشار دهید (یک حلقه for کامل نوشته شد).

فکر کنید می خواهید کد زیر را بنویسید:

public string StartSection { get; set; }

کلمه prop را بنویسید و سپس دوبار کامند TAB را بر روی کیبورد فشار دهید!!!

به این ابزار Code Snippet گفته می شود که از نوشتن کدهای تکراری جلوگیری می کند.

خوب حال به مسیر زیر بروید

C:\Users\{UserName}\Documents\Visual Studio 2013\Code Snippets\Visual C#

من از ویژوال استادیو 2013 استفاده می کنم پس در آدرس بالا Visual Studio 2013 نوشته شده است شاید نسخه شما متفاوت باشد (دنبال نسخه خود باشید).

بجای {UserName} باید دنبال پوشه ای که مربوط به نام کامپیوتر شما است باشید. مثلا

C:\Users\EduOnlien User\Documents\Visual Studio 2013\Code Snippets\Visual C#

اگر مسیر را پیدا نکردید، در هر مسیری که دوست دارید پوشه زیر را extract کنید.

دریافت کد نویسی به روش EduOnline
حجم: 2.52 کیلوبایت
EduOnline SniptCode

حال در ویژوال استادیو خود، منو Tools را از نوار منو بالا انتخاب کنید و سپس منو Code Sinppets Manager را انتخاب کنید در پنجره باز شده از قسمت

Language گزینه Visual C# l را انتخاب کنید و سپس گزینه Add را بزنید و به درون فولدری (حتما باید درون فولدر EduOnline SniptCode قرار گرفته باشید) که دانلود کرده اید بروید و سپس گزینه Select Folder را بزنید، سپس Ok را انتخاب کنید تا پنجره بسته شود.

حال در بخش کد نویسی خود عبارت

pum را بنویسید و سپس دوبار کلید Tab را بر روی کیبورد خود فشار دهید، سه گزینه به شما نمایش داده می شود که می توانید هر یک را انتخاب کنید.

برای کد نویسی در MVC  نیز می توانید کلمه act را بنویسید و سپس دوبار کلید Tab را بر روی کیبورد خود فشار دهید.

تعیین یک Button به عنوان DefaultButton در MVC روش 2

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

در MVC  برای اینکه شما یک Button را به عنوان Button  پیش فرض قرار دهید و در صورتی که کاربر دکمه Enter کیبورد را زد آن Button را فراخوانی کنید کافی است به صورت زیر عمل کنید

 @*<script type="text/javascript">              $(document).ready(function () {
                  $("#MyForm").keypress(function (e) {
                      kCode = e.keyCode || e.charCode //for cross browser
                      if (kCode == 13) {
                          var defaultbtn = $(this).attr("DefaultButton");
                          $("#" + defaultbtn).click();
                          return false;
                      }
                  });
              });
&lt;/script>*@
 
          &lt;script type="text/javascript">
              var ButtonKeys = { "EnterKey": 13 };
              $(function () {
                  $("#MyForm").keypress(function (e) {
                      if (e.which == ButtonKeys.EnterKey) {
                          var defaultButtonId = $(this).attr("DefaultButton");
                          $("#" + defaultButtonId).click();
                          return false;
                      }
                  });
              });
&lt;/script>
 
 @using (Html.BeginForm("NewCustomer", "Customer", FormMethod.Post, new { DefaultButton = "btnContinue", id = "MyForm", Name = "MyForm" }))
    {   <div id="login">
         <table style="vertical-align:5px;">
                        <tr>
                           <td>
      Enter Your Email ID
                            @Html.TextBoxFor(m => m.EmailId, new { @tabindex = "1", @Id = "subemail", @Name = "subemail"})
                            </td>
                        </tr>
 
                         <tr>
                            <td>
 
                                    Select Your City</h2>
                            @Html.DropDownListFor(m => m.Address.City, new SelectList(ViewBag.CityList, "ItemValue", "ItemText"), new { @tabindex = "2"})
 

                            </td>
                        </tr>
                        <tr>
                            <td>
                                &lt;input type="submit" value="Great Deals" class="btn" name="Continue" id="btnContinue"  runat="server" tabindex="3"/>
 
                    </table>
                </div>

تعیین یک Button به عنوان DefaultButton در MVC

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

تعیین یک Button به عنوان DefaultButton در MVC

در MVC  برای اینکه شما یک Button را به عنوان Button  پیش فرض قرار دهید و در صورتی که کاربر دکمه Enter کیبورد را زد آن Button را فراخوانی کنید کافی است به صورت زیر عمل کنید.

<script type="text/javascript"> 
$(document).ready(function (){
$("#MyForm").keypress(function (e) {
kCode = e.keyCode || e.charCode /*for cross browser */
if (kCode == 13) { var defaultbtn = $(this).attr("DefaultButton");
$("#" + defaultbtn).click();
return false;
}
});
});
</script>
@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { DefaultButton = "SubmitButton", id = "MyForm" }))
{
@Html.TextBox("txtname")
<span>Please Enter value and then press Enter Key</span><br />
<input type="submit" name="btnSubmit" id="SubmitButton" value="Submit" />
}

خطای undefined

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

خطای undefined

<script>
        $(document).ready(function () {
            $("#login").click(function () {

           
                var username = $("#username").val();
                var password = $("#password").val();
              
                alert(username);
               
        });
});
</script>

در پنجره alert پیغام زیر نمایش داده می شود.

undefined

1) فایل jquery را در ابتدای head قراردهید نه انتهای body

2) Id  کنترل ها را چک کنید

<input name="username" id="username" type="text" class="input username" placeholder="Username" />
<input name="password" id="password" type="password" class="input password" placeholder="Password" />

System.IO.FileNotFoundException: Could not load file or assembly

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

خطای System.IO.FileNotFoundException: Could not load file or assembly

اگر از Visual Studio 2012 یا 2013 استفاده می کنید ممکن است در اجرای دستور

Enable-Migrations

یا

update-database

با خطای زیر موجه شوید

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

تغییر Layout.cshtml_

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

آموزش asp.net mvc

هنگامی که شما یک پروژه جدید ایجاد می کنید به صورت پیش فرض قالب یا همان Layout شما که توسط MVC ایجاد می شود به صورت زیر خواهد بود

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>@ViewBag.Title - My ASP.NET MVC Application</title>
        <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
        <meta name="viewport" content="width=device-width" />
        @Styles.Render("~/Content/css")
        @Scripts.Render("~/bundles/modernizr")
        <script src="~/Temporary/jquery-1.8.2.js"></script>
    </head>
    <body>
        <header>
            <div class="content-wrapper">
                <div class="float-left">
                    <p class="site-title">@Html.ActionLink("your logo here", "Index", "Home")</p>
                </div>
                <div class="float-right">
                    <section id="login">
                        @Html.Partial("_LoginPartial")
                    </section>
                    <nav>
                        <ul id="menu">
                            <li>@Html.ActionLink("Home", "Index", "Home")</li>
                            <li>@Html.ActionLink("About", "About", "Home")</li>
                            <li>@Html.ActionLink("Contact", "Contact", "Home")</li>
                        </ul>
                    </nav>
                </div>
            </div>
        </header>
        <div id="body">
            @RenderSection("featured", required: false)
            <section class="content-wrapper main-content clear-fix">
                @RenderBody()
            </section>
        </div>
        <footer>
            <div class="content-wrapper">
                <div class="float-left">
                    <p>&copy; @DateTime.Now.Year - My ASP.NET MVC Application</p>
                </div>
            </div>
        </footer>

        @Scripts.Render("~/bundles/jquery")
        @RenderSection("scripts", required: false)
    </body>
</html>

این قالب یک Layout است که در پروژه MVC با نوع  Internet ایجاد شده است ترجیحا برای اینکه به مشکل برنخورید بهتر است تغییراتی را در آن ایجاد کنید

مثال:

ممکن است شما یک تابع jquery یا javascript  داشته باشید که در پروژه MVC شما کار نمی کند در صورتی که تابع شما صحیح است مثلا مثل تابع زیر

 <script>
        $(document).ready(function () {
            $("#TestButton").click(function () {

                alert("Huge Code :)");

    });
        });</script>

خوب اگر این کد اجرا نشود پس یک جای کار مشکل دارد!!!

برای اجرا شدن این چنین کد های سنگینی :) بهتر است که Layout پیش فرض را کمی تغییر دهید. برای اجرا شدن این کد کافی است که فقط دستور زیر را که در پایین ترین خط body  نوشته شده است به میان دستورات Head انتقال دهید

@Scripts.Render("~/bundles/jquery")

مشکلات NET 4.5.

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

متاسفانه میاکروسافت همیشه بر روی کاربرانش به عنوان یک جامعه آزمایشگاهی استفاده می کند همه ویندوز ویستا و عمر کمتر از یک سال آن را به خاطر دارید!

حال که مایکروسافت NET 4.5 خود را عرضه کرده است، ترجیحا تا stable شدن آن بهتر است از آن استفاده نکنید

چند مشکل ساده:

بجای اسیکوال کانکشن همیشگی می بایست چند property دیگر را set کنید که ممکن چندین ساعت وقت شما را بگیرد!!!

برای Run شدن پروژه همیشه یک سری dll در پوشه bin وجود دارند که فراخوانی می شوند متسفانه در اینجا هم اگر NET 4.5 استفاده کنید به مشکل برخواهید خرد

مشکل آخر :

شاید اگر از NET 4 استفاده کنید برای نصب Package ها و compatiable کردن آنها چند ساعت بگذارید!! که باز هم زیاد خواهد بود اما برای همان کار با NET 4.5 شاید چند روز :(

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