본문 바로가기
ASP.NET MVC

ASP.NET MVC] RedirectToAction 에서 nameof 사용하기

by Fastlane 2023. 7. 28.
728x90
반응형

ASP.NET MVC 웹앱에서 entity 추가, 수정, 삭제 후 RedirectToAction() 함수를 사용할 수 있다. 

아래는 Edit() 함수를 예로 들었다. 

[HttpPost]
public async Task<IActionResult> Edit(ReferenceEditModel model)
{
    if (!ModelState.IsValid)
    {
        await _referenceService.FillEditModelClassifies(model);
 
        return View("Edit", model);
    }
 
    await _referenceService.SaveReference(model, User.Identity.Name);
 
    return RedirectToAction("Index");
}

위 소스를  nameof를 사용하여, 아래와 같이 바꿀 수 있다.

[HttpPost]
public async Task<IActionResult> Edit(ReferenceEditModel model)
{
    if (!ModelState.IsValid)
    {
        await _referenceService.FillEditModelClassifies(model);
 
        return View(nameof(Edit), model);
    }
 
    await _referenceService.SaveReference(model, User.Identity.Name);
 
    return RedirectToAction(nameof(ReferencesController.Index));
}

nameof(Index)를 사용할 때는, 주의해야 한다!!

위 소스에서는 Index 전에 controller class name을 사용하였지만, controller에 Index()가 없는 상태에서 nameof(Index)라고 해도 컴파일러에서 오류가 나지 않는다. 

System namespace의 Index structure를 사용하기 때문이다. 

 

728x90
반응형

댓글