hn-20-2/Apps/Client/Pages/PublishLink.razor
2021-04-28 11:18:47 +02:00

49 lines
1.0 KiB
Plaintext

@page "/links/new"
@inject LinksClient Links
@inject NavigationManager Navigation
@using System.ComponentModel.DataAnnotations
<h1>Publish a new link!</h1>
@if(_error != null) {
<p>An error ! @_error.Message</p>
}
<EditForm Model="@_model" OnValidSubmit="TryPublishLink">
<DataAnnotationsValidator />
<ValidationSummary />
<InputText @bind-Value="@_model.Url" />
<button type="submit">Post!</button>
</EditForm>
@code {
private Model _model = new Model();
private Exception _error = null;
private async Task TryPublishLink()
{
_error = null;
try
{
await Links.CreateAsync(_model.Command);
Navigation.NavigateTo("/");
}
catch(Exception ex)
{
_error = ex;
}
}
private class Model
{
[Required]
[Url]
public string Url { get; set; }
//public PublishLinkCommand Command { get { return new PublishLinkCommand { Url = new System.Uri(Url) }; }}
public PublishLinkCommand Command => new PublishLinkCommand { Url = new System.Uri(Url) };
}
}