在我的mvc应用程序中,控制器方法根本没有调用,我使用脚本来调用方法并且是一个新手
$('#submit_fourth').click(function () {
alert('data sent');
$.ajax({
url: "/Home/Index",
data: { 'Id': groupId },
type: 'GET',
success: function (result) {
//do the necessary updations
},
error: function (result) {
}
});
});
按钮事件是
<input class="send submit" type="submit" id="submit_fourth" value="" />
我的行动是
public ActionResult Index(Models.Companyregister comreg)
{
if (ModelState.IsValid)
{
dataaccess.Companyregister_D ds = new dataaccess.Companyregister_D();
int a = ds.insertcompanyregister(comreg);
}
return View();
}
我的问题是如何将模型传递给控制器方法以及如何调用控制器方法?谢谢你的推荐
答案 0 :(得分:0)
我认为您使用的是 GET 请求,理想情况下应该是 POST 请求。
喜欢 -
$('#submit_fourth').click(function () {
alert('data sent');
$.ajax({
url: "/Home/Index",
data: { 'Id': groupId },
type: 'POST',
success: function (result) {
//do the necessary updations
},
error: function (result) {
}
});
});
答案 1 :(得分:0)
解决方案1:
更改索引方法类型,或者从您尝试调用[HTTPPOST]
方法的脚本中创建新的post
。
解决方案2 :(我更喜欢)
将输入类型从button
更改为submit
以避免多次提交。
解决方案3:
在html代码中调用Onclick函数,如:
<input type="submit" OnClick=DataSubmit(); />
<强>脚本强>
<script>
DataSubmit()
{
//Do your stuff;
};
</script>
答案 2 :(得分:0)
您必须要发送带有ajax的模型,以便您的操作必须具有[HttpPost]并在您的ajax调用代码中添加此
//Ajax Call inClient
$('#submit_fourth').click(function () {
$.ajax({
url: "/Home/CreateUser",
data: $('#formId').Serialize(),
type: 'POST',
success: function (result) {
//To DO
}
});
});
// Model
public class User
{
public string UserName { get; set; }
public string Code{ get; set; }
}
// Action
[HttpPost]
public ActionResult CreateUser(User model)
{
return View();
}
//View
@using (Html.BeginForm( new { Id= "form" }))
{
<div class="form-group">
@Html.LabelFor(m => m.UserName, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.UserName, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(m => m.Code, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.Code, new { @class = "form-control" })
</div>
</div>
<input type="button" id="submit_fourth" value="Save" class="btn btn-default" />
}
答案 3 :(得分:0)
如何将模型传递给控制器方法以及如何调用 控制方法?
您可以通过以下方式将数据发送到控制器操作:
<强> Index.cshtml 强>
<input class="send submit" type="submit" id="submit_fourth" value="" />
<script>
$('#submit_fourth').click(function() {
alert('data sent');
var model = { Name: "ABC Inc", UsedForYear: "2014" };
$.ajax({
url: '@Url.Action("Index", "Home")',
contentType: 'application/json; charset=utf-8',
type: 'POST',
dataType: 'html',
data: JSON.stringify(model)
})
.success(function(result) {
});
});
</script>
<强> Controller.cs 强>
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(CompanyRegister companyregister)
{
if (ModelState.IsValid)
{
// Use the incoming data
}
return View();
}
}
public class CompanyRegister
{
public string Name { get; set; }
public string UsedForYear { get; set; }
}
答案 4 :(得分:0)
将您的请求类型更改为&#39; POST&#39;,我认为您要插入一些数据,因此您必须调用POST方法&amp;插入&#34; HTTPPOST&#34;您的操作方法上方的注释如下:
[HttpPost]
public ActionResult Index(Models.Companyregister comreg)
{
if (ModelState.IsValid)
{
dataaccess.Companyregister_D ds = new dataaccess.Companyregister_D();
int a = ds.insertcompanyregister(comreg);
}
}