如何将多个参数从javascript函数传递到视图中的控制器?
目前,我有一个javascript函数,用于Razor视图中的一个按钮,当用户单击该按钮时,将显示一条弹出消息如何将多个参数从javascript函数传递到视图中的控制器?,javascript,c#,asp.net-mvc,razor,Javascript,C#,Asp.net Mvc,Razor,目前,我有一个javascript函数,用于Razor视图中的一个按钮,当用户单击该按钮时,将显示一条弹出消息 $("#confirmBtn").click(function() { alert("user confirmed address: " + address + street + country); 现在我想更改这个函数,这样当用户单击它时,它会将参数作为HttpPost发送到控制器“SaveAddress” 我怎样才能做到这一点?谢谢。在MVC中使用ajax表
$("#confirmBtn").click(function() {
alert("user confirmed address: " + address + street + country);
现在我想更改这个函数,这样当用户单击它时,它会将参数作为HttpPost发送到控制器“SaveAddress”
我怎样才能做到这一点?谢谢。在MVC中使用ajax表单
@using (Ajax.BeginForm("SaveAddress", "YourController", new AjaxOptions() { HttpMethod = "POST", UpdateTargetId = "elementwhichholdsthisform", OnSuccess = "OnFilterSuccess" }, new { id = "frmSaveAddress" }))
{
}
还要记住添加对的引用
jquery.unobtrusive-ajax.js
创建dto类:
public class AddressDto
{
public string Address { get; set; }
public string Street { get; set; }
public string Country { get; set; }
}
您的控制器方法:
public ActionResult SaveData(AddressDto dto)
{
// do stuff
return Json(true);
}
您的ajax请求:
$("#confirmBtn").click(function() {
// get values and pass them to dto
var dto = {
Address: address,
Street: street,
Country: country
};
$.ajax({
url: 'MyController/SaveData',
type: 'POST',
data: { dto: dto },
success: function (result) {
// do stuff
}
});
}
您有两种选择,一种是使用表单回发,另一种是使用AJAX --通过使用ajax,如下所示 --视图部分
<input type="text" id="address" name="address"/>
<input type="submit" id="btnSubmit" Value="Submit"
onclick="return myFunction()" />
注意:-您可以创建模型类,并能够发送多个值作为
演示我只是发送一个值
--通过使用下面的表单帖子
--模范班
public class MyClass
{
public string address {get;set;}
public string street {get;set;}
}
--控制器
[HttpGet]
public ActionResult SaveAddress()
{
//Write your code here
return View();
}
[HttpPost]
public ActionResult SaveAddress(MyClass myclass)
{
//Write your code here
return RedirectToAction();
}
--看法
@model YourSolutionName.Models.MyClass
@使用(Html.BeginForm(“SaveAddress”,“您的控制器名称”,FormMethod.Post))
{
@Html.TextBoxFor(x=>x.address)
@Html.TextBoxFor(x=>x.street)
}
我希望它能帮助你。谢谢您使用表单并提交值(或者如果您想停留在同一页面上,请使用ajax发布值)。@StephenMuecke如果我使用ajax,该怎么办?非常感谢你能给我举个例子。谢谢!我会尝试一下:欢迎光临,尽情享受
public class MyClass
{
public string address {get;set;}
public string street {get;set;}
}
[HttpGet]
public ActionResult SaveAddress()
{
//Write your code here
return View();
}
[HttpPost]
public ActionResult SaveAddress(MyClass myclass)
{
//Write your code here
return RedirectToAction();
}
@model YourSolutionName.Models.MyClass
@using (Html.BeginForm("SaveAddress","Your Controller Name",FormMethod.Post))
{
@Html.TextBoxFor(x => x.address )<br/>
@Html.TextBoxFor(x => x.street)
<br/>
<input type="submit" id="btnSubmit" Value="Submit" />
}