- Add the asp-action ="Create" in the Index.cshtml View
<div class="col-6 text-right">
<a asp-controller="Project" asp-action="Create" class="btn btn-primary" >Another Create</a>
@Html.ActionLink("Create New", "Create")
</div>
- Create View called Create.cshtml
@model TaskManagement.Models.Project
<form method="post" asp-action="Create">
<div class="border p-3">
<div class="form-group" row>
<h2 class="text-info pl-3">Add Project</h2>
</div>
<div class="row">
<div class="col-8">
<div class="form-group row">
<div class="col-4">
<label asp-for="name"></label>
</div>
<div class="col-8">
<input asp-for="name" class="form-control"/>
</div>
</div>
<div class="form-group row">
<div class="col-4">
<label asp-for="pic"></label>
</div>
<div class="col-8">
<input asp-for="pic" class="form-control" />
</div>
</div>
<div class="form-group row">
<div class="col-8 offset-4 row">
<div class="col">
<input type="submit" class="btn btn-info w-180" value="Create" />
</div>
<div class="col">
<a asp-action="Index" class="btn btn-success">Back</a>
</div>
</div>
</div>
</div>
</div>
</div>
</form>
- Create Controller
namespace TaskManagement.Controllers
{
public class ProjectController : Controller
{
public IActionResult Create()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult New(Project model)
{
if (ModelState.IsValid)
{
try
{
Database d = new Database();
string sql = "INSERT INTO " + d.table + "( " +
d.id + "," +
d.project_name + ", " +
d.pic + ", " +
d.due_date + ", " +
d.project_detail + " " +
")SELECT COALESCE(MAX(" + d.id + "::Integer),0)+1," +
"'" + model.name + "'," +
"'" + model.pic + "', " +
"'" + model.duedate + "', " +
"'" + model.detail + "' " +
" FROM " + d.table;
Database db = new Database(sql);
db.Open();
db.Close();
TempData["alert"] = "Done";
return RedirectToAction("Index");
}
catch (Exception e)
{
TempData["alert"] = e.Message;
}
}
return View();
}
}
}