C# 我可以从JavaScript MVC连接到SQL吗?
我正在填充将添加到Sql数据库的名称列表。在这个简单的例子中,如何在不刷新页面的情况下将信息发送到SQL serverC# 我可以从JavaScript MVC连接到SQL吗?,c#,java,javascript,html,asp.net-mvc,C#,Java,Javascript,Html,Asp.net Mvc,我正在填充将添加到Sql数据库的名称列表。在这个简单的例子中,如何在不刷新页面的情况下将信息发送到SQL server <script type="text/javascript"> function addNewRow() { $('#displayPropertyTable tr:last').after('<tr><td style="font-size:smaller;" class="name"></td><td styl
<script type="text/javascript">
function addNewRow() {
$('#displayPropertyTable tr:last').after('<tr><td style="font-size:smaller;" class="name"></td><td style="font-size:smaller;" class="address"></td></tr>');
var $tr = $('#displayPropertyTable tr:last');
var propertyCondition = $('#txtPropAddress').val();
if (propertyCondition != "") {
$tr.find('.name').text($('#txtPropName').val());
$tr.find('.address').text($('#txtPropAddress').val());
}
}
</script>
...
<table id="displayPropertyTable" width= "100%">
<tr>
<td style="font-size:smaller;" class="name"></td>
<td style="font-size:smaller;" class="address"></td>
</tr>
</table>
...
<table>
<tr>
<td><b>Name</b></td>
<td colspan="2"><input id="txtPropName" type="text" /></td>
</tr>
<tr>
<td><b>Address</b></td>
<td colspan="2"><input id="txtPropAddress" type="text" /></td>
</tr>
</table>
...
<button onclick="addNewRow();">Add</button>
函数addNewRow(){
$('#displayPropertyTable tr:last')。在('')之后;
var$tr=$('displayPropertyTable tr:last');
var propertyCondition=$('#txtproAddress').val();
如果(属性条件!=“”){
$tr.find('.name').text($('#txtPropName').val());
$tr.find('.address').text($('#txtproaddress').val());
}
}
...
...
名称
地址
...
添加
通过JQuery的getJSON()使用AJAX是我经常使用的一种方法getJSON()
是我相信的ajax()
方法的包装器
下面是一个JS方法的示例,该方法序列化表单数据,并执行ajax请求传递序列化数据
如果在这种情况下成功,您可以传回一个Json对象。在我的示例中,我只是传回一个表示“Success”的字符串。因此,对于我的简单示例,您将看到一个警报框,其中显示成功
function addRowsViaAJAX() {
var d = new Date(); // IE hack to prevent caching
$.getJSON('/ControllerName/ActionName', { Data: $('#MyForm').serialize(), Date: d.getTime() }, function(data) {
// callback on success
alert(data);
}, 'json');
}
在您的控制器中,这里有一个用于AJAX的操作示例
您的数据以线性字符串的形式序列化,因此您必须解析它,这非常简单。然后获取数据并执行各自的数据库逻辑。然后返回一个Json对象
public virtual JsonResult ActionName(string data)
{
// take the data and parse the linear stream... I like to use the FormCollection
FormCollection collection = new FormCollection();
foreach (string values in data.Split('&')){
string[] value = values.Split('=');
collection.Add(value[0], value[1]);
}
// Now do your database logic here
return Json("Success");
}
您可以使用.ajax方法来实现这一点
var prop= {};
prop["Name"] = $("#txtPropName").val();
prop["Address"] = $("#txtPropAddress").val();
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/Admin/AddProperty",
data: JSON.stringify(release),
dataType: "json",
success: function(result) {
// do something on success
},
error: function(result) {
// do something on error
}
});
然后在控制器中,您可以执行以下操作:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult AddProperty(Property prop)
{
// add property to database, etc.
return Json(true);
}
您可以从中获取JSON.stringify。我会将该表包装成一个表单,然后使用AJAX POST将数据发送回实际执行插入的服务器端页面
$.ajax({
type: 'POST',
url: [URL_TO_PAGE_THAT_DOES_DB_INSERT],
data: $(_('[YOURFORMID')).serialize(),
success: function(data) {
//do something
}
error: function(xhr){
//do something else
}
});
Ajax:ASP.NET MVC非常支持服务器端服务,可以轻松地从客户端JavaScript(例如通过JQuery)调用这些服务。