زمان:
حجم:
6.9M
توضیح کنترلر name در ASP.Net Core MVC
ساخته شده از هوش مصنوعی
پروژه ASP.Net Core MVC (وب و سی شارپ)
توضیح کنترلر name در ASP.Net Core MVC ساخته شده از هوش مصنوعی
کنترلر Name
public class NameProjectController : Controller
{
private readonly AppDbContext _context;
public NameProjectController(AppDbContext context)
{
_context = context;
}
public IActionResult Index()
{
var names=_context.Names.ToList();
return View(names);
}
public IActionResult Details(int id)
{
var name = _context.Names.Find(id);
return View(name);
}
public IActionResult Create()=> View();
[HttpPost]
public IActionResult Create(Name name)
{
if (ModelState.IsValid)
{
_context.Add(name);
_context.SaveChanges();
return RedirectToAction("Index");
}
return View(name);
}
public IActionResult Edit(int id)
{
var name = _context.Names.Find(id);
if (name == null) return NotFound();
return View(name);
}
[HttpPost]
public IActionResult Edit(Name name)
{
if (ModelState.IsValid)
{
_context.Update(name);
_context.SaveChanges();
return RedirectToAction(nameof(Index));
}
return View(name);
}
[HttpPost]
public IActionResult Delete(int id)
{
var name= _context.Names.Find(id);
if (name == null) return NotFound();
_context.Names.Remove(name);
_context.SaveChanges();
return RedirectToAction(nameof(Index));
}
}
ویوی index
@model IEnumerable<Name>
@{
ViewData["Title"] = "Index";
}
<h1>لیست نام ها</h1>
<a asp-action="Create" class="btn btn-primary">افزودن یک نام جدید</a>
<table class="table">
<tr>
<th>عنوان</th>
<th>عملیات</th>
</tr>
@foreach(var item in Model)
{
<tr>
<td>@item.Title</td>
<td>
<a asp-action="Edit" asp-route-id="@item.Id" class="btn btn-warning">ویرایش</a>
<a asp-action="Details" asp-route-id="@item.Id" class="btn btn-success">جزئیات</a>
<form asp-action="delete" asp-route-id="@item.Id" style="display:inline">
<button type="submit" class="btn btn-danger">حذف</button>
</form>
</td>
</tr>
}
</table>
ویوی Create
@model Name
@{
ViewData["Title"] = "Create";
}
<h1>افزودن نام جدید</h1>
<form asp-action="Create">
<label>عنوان:</label>
<input asp-for="Title" />
<span asp-validation-for="Title"></span>
<button type="submit" class="btn btn-success">ثبت</button>
</form>
ویوی Details
@model Name
@{
ViewData["Title"] = "Details";
}
<h1>جزئیات</h1>
<h2>@Model.Title</h2>
ویوی Edit
@model Name
@{
ViewData["Title"] = "Edit";
}
<h1>ویرایش نام</h1>
<form asp-action="Edit">
<input type="hidden" asp-for="Id" />
<label>عنوان</label>
<input asp-for="Title" />
<span asp-validation-for="Title"></span>
<button type="submit" class="btn btn-success">ذخیره</button>
</form>
https://eitaa.com/Pollbot_app/app?startapp=OU5djoUI?btn=نمایش.نظر.سنجی
📊 یک نظرسنجی جدید ایجاد شده!
🎯 عنوان: به کدام سطح از برنامهنویسی علاقهمند هستید یا در حال یادگیری آن هستید؟
📝 گزینهها:
• 🟢 مبتدی (Beginner) | مفاهیم پایه مثل متغیر، شرط، حلقه، و ساختارهای ساده |
• | 🔵 متوسط (Intermediate) | ساخت پروژههای کوچک، کار با دیتابیس، طراحی فرمها |
• 🟣 پیشرفته (Advanced) | معماری پروژه، امنیت، API، طراحی چندلایه و بهینهسازی |
• 🟠 تخصصی (Expert) | توسعه حرفهای، طراحی سیستمهای بزرگ، تست، DevOps، مقیاسپذیری |
• ⚪ فقط علاقهمندم، هنوز شروع نکردم | دوست دارم یاد بگیرم ولی هنوز وارد نشدم |
🗳️ برای شرکت در این نظرسنجی روی دکمه زیر یا لینک کلیک کنید 👇
این جمعه وقت نکردم پروژه جدید بسازم ما را ببخشید انشاا... جمعه دیگر
ایجاد کنترلر کامل با ویو و
public class NameController : Controller
{
private readonly AppDbContext _context;
public NameController(AppDbContext context)
{
_context = context;
}
public IActionResult Index() =>
View(_context.Names.ToList());
public IActionResult Details(int id) =>
View(_context.Names.Find(id) ?? throw new Exception("NotFound"));
public IActionResult Create()=> View();
[HttpPost]
public IActionResult Create(Name name)
{
if (ModelState.IsValid)
{
_context.Add(name);
_context.SaveChanges();
return RedirectToAction("Index");
}
return View(name);
}
public IActionResult Edit(int id)
{
var name = _context.Names.Find(id);
return name != null ? View(name) : NotFound();
}
[HttpPost]
public IActionResult Edit(Name name)
{
if (ModelState.IsValid)
{
_context.Update(name);
_context.SaveChanges();
return RedirectToAction("Index");
}
return View(name);
}
[HttpPost]
public IActionResult Delete(int id)
{
var name = _context.Names.Find(id);
if (name == null) return NotFound();
_context.Remove(name);
_context.SaveChanges();
return RedirectToAction("Index");
}
}
من دو کنترلر متفاوت دارم
پروژه ASP.Net Core MVC (وب و سی شارپ)
ایجاد کنترلر کامل با ویو و public class NameController : Controller { private readonly AppDbCont
NameProject (5).zip
حجم:
24.9M
این پروژه دو نوع کنترلر دارد یکی تا حدی کوچک کردم کدها را تا تداخلی ایجاد نشود و دیگری کد ها خود ویژوال استودیو با ویو ساخته
پروژه ASP.Net Core MVC (وب و سی شارپ)
ایجاد کنترلر کامل با ویو و public class NameController : Controller { private readonly AppDbCont
بیایم با مثالهای واقعی و توضیح مرحلهبهمرحله بررسی کنیم که تفاوت بین context.Add(name) و context.Names.Add(name) دقیقاً چیه، چه زمانی استفاده میشن، و کدوم بهتره.
---
🧠 اول تعریف هر کدام
✅ 1. _context.Add(name)
- این یک متد عمومی از EF Core هست.
- شیء name رو به کل کانتکست اضافه میکنه.
- EF
خودش تشخیص میده که name مربوط به جدول Names هست.
- مناسب برای زمانی که نوع شیء مشخصه و نمیخوای مستقیم به جدول خاصی اشاره کنی.
✅ 2. _context.Names.Add(name)
- این متد مستقیماً شیء رو به جدول Names اضافه میکنه.
- یعنی به DbSet<Name> که در AppDbContext تعریف شده، اشاره مستقیم داری.
- واضحتره و کنترل بیشتری بهت میده.
---
🔍 مثال واقعی از تعریف DbContext
csharp
public class AppDbContext : DbContext
{
public DbSet<Name> Names { get; set; }
}
در اینجا Names یک جدول (یا مجموعه) از نوع Name هست.
---
🎯 مقایسه عملی
| ویژگی | context.Add(name) | context.Names.Add(name) |
|-------|-----------------------|-----------------------------|
| نوع | عمومی | مستقیم به جدول |
| خوانایی | کمتر | بیشتر |
| کنترل | کمتر | بیشتر |
| مناسب برای | پروژههای ساده یا سریع | پروژههای بزرگ یا دقیق |
| تشخیص جدول | خودکار توسط EF | مشخص توسط برنامهنویس |
---
✅ کدام بهتر است؟
- در پروژههای کوچک یا زمانی که فقط یک جدول داری، هر دو روش درست و قابل استفاده هستن.
- اما در پروژههای بزرگ یا زمانی که چندین جدول داری، استفاده از
csharp _context.Names.Add(name);بهتر و حرفهایتره چون: - خوانایی کد بیشتره - احتمال اشتباه کمتره - دیباگ راحتتره --- 🧠 نکته پیشرفته اگر از _context.Add(...) استفاده کنی برای شیءهایی که EF نمیتونه نوعشون رو تشخیص بده (مثلاً شیء پیچیده یا اشتباه)، ممکنه خطا بگیری یا داده درست ذخیره نشه.
DateRecord.zip
حجم:
24.7M
پروژه کوچک برای نمایش تاریخ شمسی و میلادی
1.5M حجم رسانه بالاست
مشاهده در ایتا
این پروژه که ساختم نوع تاریخ ربطی به سیستم کامپیوتر ندارد