Требуется некоторая помощь, пожалуйста:
Составьте первый (преобразование доступа). Составной ключ - CalendarDate и Round.
Из Index.cshtml
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.CalendarDate)
</td>
<td>
@Html.DisplayFor(modelItem => item.Round)
</td>
<td>
@Html.DisplayFor(modelItem => item.SundayComp)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { CalendarDate = item.CalendarDate.ToString("dd/MM/yyyy"), Round = item.Round }) |
@Html.ActionLink("Delete", "Delete", new { CalendarDate = item.CalendarDate.ToString("dd/MM/yyyy"), Round = item.Round })
</td>
</tr>
}
</tbody>
Запись о01/01 / 2018,1 обнаружен с помощью Edit.cshtml и может быть обновлен.
Запись с 01/02 / 2018,1 находит 02/01/2018 (если запись существует).
Запись 02/01/2018,1 обнаруживает 01/02/2018 (если запись существует).
Похоже, что при маршрутизации используется формат даты США вместо формата AU.
Часть файла Edit.cshtml
<form asp-action="Edit">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<input type="hidden" asp-for="CalendarDate" />
<input type="hidden" asp-for="Round" />
<input type="hidden" asp-for="SsmaTimeStamp" />
<div class="form-group">
<label asp-for="CalendarDate" class="control-label"></label>
<input asp-for="CalendarDate" class="form-control" disabled/>
<span asp-validation-for="CalendarDate" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Round" class="control-label"></label>
<input asp-for="Round" class="form-control" disabled />
<span asp-validation-for="Round" class="text-danger"></span>
</div>
<div class="form-group">
<div class="checkbox">
<label>
<input asp-for="SundayComp" /> @Html.DisplayNameFor(model => model.SundayComp)
</label>
</div>
</div>
<div class="form-group">
<input type="submit" value="Save" class="btn btn-default" />
</div>
</form>
Модель Calendar.cs
public partial class Calendar
{
public Calendar()
[Key]
[Column(Order = 0)]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime CalendarDate { get; set; }
[Column(Order = 1)]
public short Round { get; set; }
public bool SundayComp { get; set; }
public byte[] SsmaTimeStamp { get; set; }
}
Файл Get in CalendarsController.cs
// GET: Calendars/Edit/5
public async Task<IActionResult> Edit(DateTime? CalendarDate, short? Round)
{
if (CalendarDate == null)
{
return NotFound();
}
if (Round == null)
{
return NotFound();
}
var calendar = await _context.Calendar.FindAsync(CalendarDate,Round);
if (calendar == null)
{
return NotFound();
}
return View(calendar);
}
Попытка добавленияпосле Startup.cs ****** Без изменений ******.
public void ConfigureServices(IServiceCollection services)
{
services.Configure<RequestLocalizationOptions>(options =>
{
options.DefaultRequestCulture = new Microsoft.AspNetCore.Localization.RequestCulture("en-AU");
options.SupportedCultures = new List<CultureInfo> { new CultureInfo("en-AU") };
options.RequestCultureProviders.Clear();
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
и
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
var supportedCultures = new[] { new CultureInfo("en-AU") };
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("en-AU"),
SupportedCultures = supportedCultures,
SupportedUICultures = supportedCultures
});
Проверьте настройки региона сервера: дд / мм / гггг
Попытался добавить Route в Startup.cs - ***** Без изменений ******
app.UseMvc (маршруты =>
{
routes.MapRoute(
name: "Calendar",
template: "{controller=Home}/{action=Index}/{CalendarDate?}/{Round?}");
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
}
Кончаются идеи