エラー:CS0200
プロパティまたはインデクサー 'BindErrorModel.value1' は読み取り専用であるため、割り当てることはできません
@page "/BindError"
@inherits BindErrorModel
<h3>TextBox Bind Demo</h3>
<input id="text1" type="text" @bind="@value1"/><br/>
<button @onclick="ButtonClick">Button1</button>
<div>@InputText</div>
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.Components;
namespace BindDemo.Pages
{
public class BindErrorModel : ComponentBase
{
public string value1 { get; }
public string InputText { get; set; }
public void ButtonClick()
{
InputText = value1 + " が入力されました";
}
}
}
<Router AppAssembly="@typeof(Program).Assembly">
<Found Context="routeData">
<RouteView RouteData="@routeData"/>
</Found>
<NotFound>
<LayoutView>
<p>Sorry, there's nothing at this address.</p>
</LayoutView>
</NotFound>
</Router>
@using System.Net.Http
@using Microsoft.AspNetCore.Authorization
@using Microsoft.AspNetCore.Components.Authorization
@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web
@using Microsoft.JSInterop
@bind
属性に value1
を指定しています。<input id="text1" type="text" @bind="@value1"/><br/>
value1
を読み込み専用プロパティとして定義しています。~
public class BindErrorModel : ComponentBase
{
public string value1 { get; }
/* 中略 */
}
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.Components;
namespace BindDemo.Pages
{
public class BindErrorModel : ComponentBase
{
public string value1 { get; set;}
public string InputText { get; set; }
public void ButtonClick()
{
InputText = value1 + " が入力されました";
}
}
}
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.Components;
namespace BindDemo.Pages
{
public class BindErrorModel : ComponentBase
{
public string value1;
public string InputText { get; set; }
public void ButtonClick()
{
InputText = value1 + " が入力されました";
}
}
}
(アプリケーションルートURL)/BindError
にアクセスします。下図のページが表示されます。@page "/BindError"
@inherits BindErrorModel
<h3>TextBox Bind Demo</h3>
<input id="text1" type="text" value="@value1"/><br/>
<button @onclick="ButtonClick">Button1</button>
<div>@InputText</div>
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.Components;
namespace BindDemo.Pages
{
public class BindErrorModel : ComponentBase
{
public string value1 { get; }
public string InputText { get; set; }
public BindErrorModel()
{
value1 = "初期値です。";
}
public void ButtonClick()
{
InputText = value1 + " が入力されました";
}
}
}
(アプリケーションルートURL)/BindError
にアクセスします。下図のページが表示されます。
ページモデルで設定したvalue1の初期値がテキストボックスに反映されていることが確認できます。