Я хочу сохранить данные в базу данных на ajax в ASP. NET MVC. Я читаю очень статьи и пишу их в [y project, но я сталкиваюсь с ошибкой.
Я не знаю, как это работает правильно.
Например - мой код в контроллере:
public ActionResult InsertData_5()
{
return View();
}
[HttpPost]
public ActionResult InsertData_5(Personal objdata)
{
try
{
//SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings[connectionString].ToString());
string constr = "Data Source=192.168.100.1;Initial Catalog=ContosoUniversity1;Persist Security Info=True;User ID=sa;Password=Abhar70";
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings[constr].ToString());
con.Open();
SqlCommand cmd = new SqlCommand("InsertData_SP", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@FirstName", objdata.FirstName);
cmd.Parameters.AddWithValue("@LastName", objdata.LastName);
cmd.Parameters.AddWithValue("@Phone", objdata.Phone);
cmd.ExecuteNonQuery();
con.Close();
}
catch (Exception)
{
throw;
}
return View("InsertData_5");
}
Хранимая процедура:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[InsertData_SP]
(@FirstName nvarchar(MAX),
@LastName nvarchar(MAX),
@Phone nvarchar(MAX))
AS
BEGIN
INSERT INTO Personal_tbl2 (FirstName, LastName, Phone)
VALUES (@FirstName, @LastName, @Phone)
END
Просмотр InsertData_5.cshtml
:
@model ContosoUniversity.Models.Personal
@using System.Web.Optimization;
@{
ViewBag.Title = "InsertData_5";
}
<h2>Index</h2>
<script src="~/Scripts/jquery-3.4.1.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src=”-/Scripts/jquery.unobtrusive-ajax.min.js”></script>
<div id="divEmp">
@using (Ajax.BeginForm("InsertData_5", "Post", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "divEmp" }))
{
<table>
<tr>
<td>FirstName</td>
<td>
<input type="text" id="txtFirstName" />
</td>
</tr>
<tr>
<td>LastName</td>
<td>
<input type="text" id="txtLastName" />
</td>
</tr>
<tr>
<td>Phone</td>
<td>
<input type="text" id="txtPhone" />
</td>
</tr>
<tr>
<td>
<input type="button" id="btnsubmit" value="Save" />
</td>
</tr>
</table>
<script type="text/javascript">
$(document).ready(function () {
$("#btnsubmit").click(function () {
$.ajax(
{
type: "POST",
url: "Home/InsertData_5",
data: {
FirstName: $("#txtFirstName").val(),
LastName: $("#txtLastName").val(),
Phone: $("#txtPhone").val()
}
});
});
});
</script>
}
</div>
Index.cshtml
У меня есть кнопка в этом файле. Когда программа запускается, я нажимаю кнопку. Это получить данные. Но не храните в базе данных.
@{ ViewBag.Title = "first page"; }
<div class="jumbotron">
<h1>aa</h1>
</div>
<div class="row">
<div class="col-md-4">
<div class="navbar-collapse collapse">
<ul class="btn btn-default">
<li>@Html.ActionLink("saving", "InsertData_5", "Home")</li>
</ul>
</div>
</div>
</div>
Что мне делать?
Спасибо