Как выполнить действие редактирования в ASP. net Core? - PullRequest
1 голос
/ 27 февраля 2020

Как выполнить действие редактирования в ASP. net Core? У меня есть следующий код для подробного действия продукта, мне нужна помощь по созданию действия для страницы редактирования

// Интерфейс IProduct

namespace Proj.Core.App.Common.Product
{    public interface IProductService
    {
        Task<IList<ProductDTO>> GetProducts();
    }
}

// Контроллер продукта

 public class ProductController : Controller
    { 
    public IProductService ProductService { get; }
    public ProductController(IProductService ProductService)
        {
            ProductService = ProductService;
        }    
//DetailAction    
       [HttpGet()]
    public async Task<IActionResult> Detail(int id)
        {
            var ProductList= (await ProductService.GetProducts()).ToList();        
            var project = ProductList.FirstOrDefault(a => a.ID == id);
            @ViewBag.Product_Code = product.productCode;
            @ViewBag.Product_Name = product.productName;      

            return View();
        }
     }

Как я могу создать действие для редактирования страницы действий?

Ответы [ 2 ]

3 голосов
/ 27 февраля 2020

Я оставил комментарий, что на вопрос действительно нужно больше информации, чтобы ответить правильно. Однако, возможно, приведенные ниже сведения могут помочь вам начать работу.

Вот реализация, использующая методы, которые у вас уже есть.

public async Task<IActionResult> Edit(int? id)
{
    if (id == null)
    {
        return NotFound();
    }

    var productList = (await ProductService.GetProducts()).ToList();

    var product = productList.FirstOrDefault(a => a.ID == id);

    if (product == null)
    {
        return NotFound();
    }

    return View(product);
}

Так выглядит типичная реализация платформы сущностей. Извлеките из него всю информацию.

public async Task<IActionResult> Edit(int? id)
{
    if (id == null)
    {
        return NotFound();
    }

    var product = await _context.Products.FindAsync(id);

    if (product == null)
    {
        return NotFound();
    }

    return View(applications);
}

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Edit(Product product)
{
    if (ModelState.IsValid)
    {
        try
        {
            _context.Update(product);

            await _context.SaveChangesAsync();
        }
        catch (DbUpdateConcurrencyException)
        {
            if (!ProductExists(product.Id))
            {
                return NotFound();
            }
            else
            {
                throw;
            }
        }

        return RedirectToAction(nameof(Index));
    }

    return View(applications);
}

private bool ProductExists(int id)
{
    return _context.Products.Any(e => e.Id == id);
}

Надеюсь, это поможет.

Удачного кодирования !!!

0 голосов
/ 27 февраля 2020
    //DetailAction    
    [HttpPut()]
    public async Task<IActionResult> Put(Product model)
    {
        ..call your service or ...
        return View();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...