ASP.NET Core 2.0 Razor Pages에서 부분 뷰 함정
결론부터
Visual Studio에서 그렇게 신규 작성한 부분 뷰는 그대로는 사용할 수 없습니다! ! (일부 과장)
부분 뷰 측의
@page
를 깎아 봅시다!환경
재현(서): 전 준비
Visual C#
> .NET Core
> ASP.NET Core Webアプリケーション
를 선택 .NET Core
& ASP.NET Core 2.0
& Web アプリケーション
(Razor쪽)을 선택 Index.cshtml
@page
@model IndexModel
@{
ViewData["Title"] = "Home page";
}
Title:<input asp-for="Content.Title" />
Body:<input asp-for="Content.Body" />
Index.cshtml.cs
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace WebApplication1.Pages
{
public class IndexModel : PageModel
{
public class MyContent
{
public string Title { get; set; }
public string Body { get; set; }
}
[BindProperty]
public MyContent Content { get; set; }
public void OnGet() { }
public IActionResult OnPost()
{
if (ModelState.IsValid)
{
//登録処理とか
return Redirect("Welcome");
}
return Page();
}
}
}
재현(파): 부분 뷰 작성
追加
> Razorページ
_Common.cshtml
@page
@*
For more information on enabling MVC for empty projects, visit http://go.microsoft.com/fwlink/?LinkID=397860
*@
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
재현(급): 움직이지 않는다! !
Index.cshtml
@page
@model IndexModel
@{
ViewData["Title"] = "Home page";
}
@*Title:<input asp-for="Content.Title" />
Body:<input asp-for="Content.Body" />*@
@Html.Partial("_Common")
_Common.cshtml
@page
@*
For more information on enabling MVC for empty projects, visit http://go.microsoft.com/fwlink/?LinkID=397860
*@
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
@*Indexで使っていたModelClassを_Commonで使うために@model定義*@
@model WebApplication1.Pages.IndexModel
Title:<input asp-for="Content.Title" />
Body:<input asp-for="Content.Body" />
해결
_Common.cshtml
의 1 행째 @page
를 깎아 봅시다.사이고에게
하고 싶은 것을 보통 생각해 실행하면 움직이지 않게 된다는 것은, 곤란하네요.
자동 생성되는 키워드가 무엇을 의미하는지 문서도 MSDN에 완전히 정비되어 있지는 않습니다.
이 작은 팁으로 누군가를 구할 것입니다!
Reference
이 문제에 관하여(ASP.NET Core 2.0 Razor Pages에서 부분 뷰 함정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ShikaTech/items/5b580adca84262ebfa36텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)