从javascript调用.cs中的方法
本文关键字:方法 cs javascript 调用 | 更新日期: 2023-09-27 17:54:07
我正在与以下问题堆叠:我想创建一个包含表单的模板(3个文本框和一个按钮)。在此模板中,通过javascript,必须调用.cs内部的函数(CRUD方法)。
所以…这是EmployeeBL.cs中的CRUD函数之一:
[WebMethod]
public static bool CreateEmployee(int Id, string Nome, string Cognome)
{ ...}
而这里是我的雇员。tpl witch应该调用CreateEmployee():
<div class="container" style="max-width: 400px">
<form class="form-horizontal" method="post" id="Form"
data-bv-feedbackicons-valid="glyphicon glyphicon-ok"
data-bv-feedbackicons-invalid="glyphicon glyphicon-remove"
data-bv-feedbackicons-validating="glyphicon glyphicon-refresh"
data-bv-submitbuttons='button[type="submit"]'>
<div class="form-group">
{Message}
</div>
<div class="form-group">
<input type="text" class="form-control" id="Id" placeholder="User name" value="{Model.Id}"
data-bv-notempty-message ="{UserNameNotEmptyMessage}" />
</div>
<div class="form-group">
<input type="text" class="form-control" id="FirstName" placeholder="First Name" value="{Model.FirstName}"
data-bv-notempty-message="{FirstNameNotEmptyMessage}" />
</div>
<div class="form-group">
<input type="text" id="LastName" placeholder="Last Name" value="{Model.LastName}" />
</div>
<div class="form-group">
<button type="submit" class="btn btn-default" value="Submit" id="myButton" >Create Employee</button>
</div>
现在总是在这个tpl里面放一个像这样的脚本:
<script type="text/javascript">
$(document).ready(function ()
{
$("#Form").bootstrapValidator();
$("#myButton").click(function(){
var Id=foo($('#Id').val());
var FirstName= foo($('#FirstName').val());
var LastName=foo($('#LastName').val());
});
});
总结:我需要创建一个员工(Id,LastName,FirstName),通过点击按钮写在我的DB上所以我的问题是如何设置可见的EmployeeBL.cs的名称空间,以及如何调用它的方法CreateEmployee()内脚本(点击按钮)?提前感谢!!
@Yuri:首先谢谢你的帮助。同时我发现最好避免这种方式。这是我的错,因为我没有告诉你我正在使用ACSPNET与Owin和MVC模式。所以我创建了MVC文件和业务逻辑一个..在控制器下的函数Invoke()我必须找到一个方法来调用EmployeeBL.CreateEmployee(),同时返回一个模板,像这里:
public class EmployeeController : Controller<EmployeeModel>
{
public override ControllerResponse Invoke()
{
var claims = new List<Claim>{
new Claim(ClaimTypes.Name,Model.Id.ToString()),
new Claim(ClaimTypes.Name,Model.Name),
new Claim(ClaimTypes.Name,Model.Surname)
};
return newTpl(GetView<EmployeeView().Get(Model,Html.MessageBox.Show(StringTable.EmployeeModel)) , StringTable.PageTitleCreateEmployee);
}
}
其中Get()函数定义如下:
public class EmployeeView : View
{
public ITemplate Get(EmployeeModel viewModel = null, string message = null)
{
return
TemplateFactory.Load("Employee.tpl")
.Model(viewModel)
.Set().Set("Message", message);
}
}
因此在Employee。TPL只定义表单和按钮
应该能行
function createUser()
{
$.ajax({
type: "POST",
url: "YourPageName.aspx/CreateEmployee",
data: {Id: foo($('#Id').val()), Nome: foo($('#FirstName').val()),Cognome:foo($('#LastName').val()) },
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert('Ok'); }
error: function (request, status, thrownError) {
alert(thrownError);
}
});
}