我创建了一个 ASP.NET 的MVC项目。我已经制作了控制器和模型。现在我想将 JSON 文件导入我的本地数据库。
这可能吗,怎么可能?
我的模型:
public class Adres
{
public int Id { get; set; }
public DateTime Date { get; set; }
public float Latitude { get; set; }
public float Longitude { get; set; }
public string Address { get; set; }
}
JSON示例:
[{"SubmissionId":1,"Date":"2014-07-15 17:53:02.127","Latitude":52.385,"Longitude":4.636,"Address":"AH Kruisstraat 10, Haarlem "},
{"SubmissionId":2,"Date":"2014-07-15 15:46:19.627","Latitude":52.382,"Longitude":4.857,"Address":"AH: Bos en Lommerweg 117, Amsterdam,"}]
下面是
一个示例,它使用 jQuery 将 JSON 数据发送到控制器,并使用经典 ADO.NET 和存储过程将记录插入数据库:
控制器:
public class Adres
{
public int Id { get; set; }
public DateTime Date { get; set; }
public float Latitude { get; set; }
public float Longitude { get; set; }
public string Address { get; set; }
}
public class HomeController : Controller
{
public ActionResult JsonExample()
{
return View();
}
[HttpPost]
public ActionResult SaveToDatabase(Adres adres)
{
adres.Date = DateTime.Now;
string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
using(var command = new SqlCommand("InsertAdres",connection))
{
command.CommandType = System.Data.CommandType.StoredProcedure;
command.Parameters.AddWithValue("@Date",adres.Date);
command.Parameters.AddWithValue("@Latitude",adres.Latitude);
command.Parameters.AddWithValue("@Longitude",adres.Longitude);
command.Parameters.AddWithValue("@Address",adres.Address);
command.ExecuteNonQuery();
}
connection.Close();
}
return View();
}
}
视图:
@{
ViewBag.Title = "JsonExample";
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script type="text/javascript">
$(function () {
$("#btnSaveJson").click(function () {
var adres = {
Id: 1,
Latitude: 155.77,
Longitude: 245.99,
Address: $("#txtAddress").val()
};
$.ajax({
url: '/Home/SaveToDatabase',
type: 'post',
dataType: 'json',
success: function (data) {
alert("Saved to database, notify user...");
},
data: adres
});
});
})
</script>
<input type="text" id="txtAddress" value="221B Baker street" />
<input type="button" value="Save Json To Database" id="btnSaveJson" />