MVC ASP.NET AJAX操作链接创建
您好,有谁能帮助我使用Ajax Actionlink从表单传递文本框的值吗。一整天都在想,我还是得到了null的值 我使用纯Ajax动作链接,没有任何按钮 下面是删除ajax动作链接的示例,非常完美! 但是在表单集合中使用它时,值总是空的。感谢您的帮助 这是我的密码: 客户视图MVC ASP.NET AJAX操作链接创建,asp.net,ajax,asp.net-mvc,asp.net-mvc-2,asp.net-ajax,Asp.net,Ajax,Asp.net Mvc,Asp.net Mvc 2,Asp.net Ajax,您好,有谁能帮助我使用Ajax Actionlink从表单传递文本框的值吗。一整天都在想,我还是得到了null的值 我使用纯Ajax动作链接,没有任何按钮 下面是删除ajax动作链接的示例,非常完美! 但是在表单集合中使用它时,值总是空的。感谢您的帮助 这是我的密码: 客户视图 <%= Html.TextBoxFor(model => model.Fname, new { id = "Fname" })%> <%= Html.TextBoxFor(model =>
<%= Html.TextBoxFor(model => model.Fname, new { id = "Fname" })%>
<%= Html.TextBoxFor(model => model.Lname, new { id = "Lname"})%>
<%= Ajax.ActionLink("Create", "Create",
new { id = 1},
new AjaxOptions {
HttpMethod="POST",
OnFailure = "function() { alert('fail'); }",
OnSuccess = "function() { alert('success'); }"
})%>
我们不应该在ASP.NET MVC应用程序中使用FormCollection。 我们应该定义一个视图模型,并让控制器操作将此视图模型作为参数。 属性将由默认模型绑定器自动填充。 这就是MVC的魅力所在
public class YourViewModel
{
public string Property1 { get; set; }
public int Property2 { get; set; }
}
public Customer(YourViewModel model)
{
}
但是,Formcollection将保存正在发布的值。
就你而言
new { id = 1},
Id将只被发布,在将其发布到控制器之前,您需要提取FName和LName的值
@Html.TextBoxFor(model=>model.Name,新的{@id=“txtname”,onclick='OnEditClick(“+item.ActionID+”)})
函数OnEditClick(id){
var id=id
$.ajax({
url: 'EditAction',
type: 'POST',
data: JSON.stringify({ id:id }),
dataType: 'json',
contentType: 'application/json',
success: function (result) {
$('#lblMessageSuccess').html('Success');
},
error: function () {
$('#lblMessageSuccess').html('Fail').fadeIn();
}
});
return false;
};
您是否将控件放在表单中了?Delete(如您所述)将仅与id(您在ajax链接中添加的id)一起工作,但create需要为要创建的对象创建数据 或者将html放入一个表单中,如
@using (Ajax.BeginForm("Create", new AjaxOptions { HttpMethod = "POST", OnSuccess = "alert('success')", OnFailure = "alert('fail')" }))
{
@*- your input fields - *@
<input type="submit" value="Create" />
}
检查语法错误,此代码未经测试。使用Ajax操作链接时,您将id作为唯一参数发送。因为这不是表单post Forms集合,所以当您尝试访问
objcustomer.Fname = formCollection["Fname"];
objcustomer.Lname = formCollection["Lname"];
如果您注意到共享的链接,那么它只需要一个参数作为操作方法参数,即id
从您给出的代码来看,您似乎希望将这两个Fname和Lname(尽管这些名称不符合标准)中的数据发布到服务器并保存它,您可能希望查看下面的链接
Stckoverflow答案
工作示例您好,先生,我仍然得到空值。很抱歉,我忘了说我正在可编辑网格视图中工作。上述方法不起作用。根据您的链接,为什么需要id=1?您在问题中提到的链接用于删除,而您正在执行的是创建,这是另一回事。对于创建,您需要发布值正如我所说的,使用视图模型保存内容删除场景Sir是我的参考,但不使用button just AJAX操作链接。值1只是存储在ViewData[“item_id”]上的item_id的静态值它将作为item_id、fname、lname存储在数据库中。item_id是从我的主表tblitemsI中推导出来的。我不确定您将如何使用Ajax操作链接。因为用户将在文本框中输入数据,所以需要找到这些数据并发送给控制器。可能是Jquery拍摄的。先生,这是我创建的两个屏幕截图,请c见鬼。1. 2。实际上你想要什么?我不能理解。你想用这个截图说什么?当我填空文本框并点击插入链接时,它会动态保存到数据库,然后返回到同一个页面。
$('#yourlink').click(function(){
$.ajax({
type: "POST",
url: '@Url.Action("Create")',
data: $('#yourFormId').serialize()
})
.done(function() { alert("success"); })
.fail(function() { alert("error"); });
objcustomer.Fname = formCollection["Fname"];
objcustomer.Lname = formCollection["Lname"];