我正在使用asp.net和c#开发我的第一个网站.
如何从asp.net中的js函数调用c#函数?我想将表单数据插入到sql数据库中.
C#(add_project.aspx.cs):
using System.Web.Services;
public partial class add_project : System.Web.UI.Page
{
[WebMethod]
public static void InsertIntoDatabase(string projectname, string piname)
{
Console.WriteLine("hello");// this doesn't appear which mean it doesn't enter this function
SqlConnection conn = new SqlConnection("Data Source=servername;Initial Catalog=databasename;Integrated Security=SSPI");
string sql = "INSERT INTO Projects (project_name, principal_investigator) VALUES (@project_name,@pi_name)";
try
{
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
SqlParameter[] param = new SqlParameter[2];
param[0] = new SqlParameter("@project_name", System.Data.SqlDbType.VarChar, 50);
param[1] = new SqlParameter("@principal_investigator", System.Data.SqlDbType.VarChar, 50);
param[0].Value = projectname;
param[1].Value = piname;
for (int i = 0; i < param.Length; i++)
{
cmd.Parameters.Add(param[i]);
}
cmd.ExecuteNonQuery();
}
catch (System.Data.SqlClient.SqlException ex)
{
string msg = "Insert Error:";
msg += ex.Message;
throw new Exception(msg);
}
finally
{
conn.Close();
}
}
}
asp文件中的js(add_project.aspx):
function doSomething() {
var $projectname = $("#project_name").val();
var $piname = $("#pi_name").val();
alert($piname); // This alert appear
$.ajax({
type: "POST",
url: 'add_project.aspx/InsertIntoDatabase',
data: "{'projectname':'" + $projectname + "', 'piname':'" + $piname + "' }", //Pass the parameter names and values
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert('success');
},
error: function (e) {
alert('error'); // this msg appear
}
});
}
aspx文件中的表单(add_project.aspx):
Project Name *
PI Name *
我无权访问表单的提交按钮(因为我使用bootstrap模板).
谢谢
解:
我通过将[WebMethod]放在c#函数之前来解决问题
另外,我在insert语句中有错误语法.
谢谢@Pawan和所有人的帮助.
解决方法:
c#方法应该是一个web方法.
[WebMethod]
这是你的c#方法
你需要先将system.web.services导入你的代码,
using System.Web.Services;
并将js函数写入表单提交事件(如果您无法访问提交按钮)
在表单中内联写onsubmit =“yourfun()”
或者如果你使用jquery
$("#form-id").submit(function(){
your function;
});
标签:jquery,c,javascript,asp-net,twitter-bootstrap
来源: https://codeday.me/bug/20190705/1391973.html