Я создал страницу создания с использованием скаффолдинга asp.net, и ниже находится моя страница для создания расходов.
@model ExpenCare.Models.ExpenseCategory
@{
ViewBag.Title = "CreateExpenseCategories";
}
<div class="row">
@Html.Partial("_RightSidePane")
<div class="col-10 col-sm-8 col-xs-8 col-md-10">
<div class="tab-content" id="nav-tabContent">
<div class="tab-pane fade show active" id="list-Profile-Content" role="tabpanel" aria-labelledby="list-Profile">
@using (Html.BeginForm("CreateExpenseCategories", "Admin", FormMethod.Post))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>ExpenseCategory</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.Expense, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Expense, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Expense, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Description, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Description, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Description, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
</div>
</div>
</div>
</div>
При создании этой страницы публикуйте данные в метод CreateExpenseCategories контроллера Admin.
public ActionResult CreateExpenseCategories(ExpenseCategory expense)
{
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://localhost:1888/api/");
var responseTask = client.PostAsJsonAsync("ExpenseCategories", expense);
responseTask.Wait();
var result = responseTask.Result;
if (result.IsSuccessStatusCode)
{
return RedirectToAction("ExpenseCategories");
}
else
{
ModelState.AddModelError(string.Empty, "Server Error. Please contact administrator.");
}
return View("ExpenseCategories/CreateExpenseCategories", model: expense);
}
Модель, использованная для создания этой страницы, выглядит следующим образом:
namespace ExpenCare.Models
{
public class ExpenseCategory
{
public int Id { get; set; }
[Required]
public string Expense { get; set; }
public string Description { get; set; }
public Company Company { get; set; }
}
}
При создании расхода всегда выдается ошибка исключения null, а при отладке публикуемая модель данных равна нулю. Наверняка это небольшая проблема, потому что я делал другие страницы создания аналогичным образом и не сталкивался с какой-либо проблемой. Я, должно быть, упускаю небольшую вещь, и это может быть глупым вопросом, но я не могу найти, почему это приводит к ошибке с нулевым исключением в сообщении.