ajax用html传多个参数,关于razor:将多个参数传递给Ajax.ActionLink

本文档介绍了一个MVC4新手遇到的问题,即在视图中使用Ajax.ActionLink无法正确传递参数到控制器。解决方案是通过jQuery进行异步请求,将表单数据序列化并传递给服务器,同时更新页面的特定区域。示例代码展示了如何使用jQuery的ajax方法和HTML元素的点击事件来实现这一目标。
摘要由CSDN通过智能技术生成

我在MVC 4项目中有一个视图和局部视图。 我在视图中有3个文本框,一个复选框和一个下拉列表。我正在使用ajax.actionlink方法来调用我的控制器Action并传递参数并从部分视图中获取结果并将它们显示在视图的div标签中 页。

这是我的代码。

@Html.TextBoxFor(m=>m.searchParameter.cityName)

@Html.TextBoxFor(m=>m.searchParameter.CountryName)

@Html.TextBoxFor(m=>m.searchParameter.StateName)

@Ajax.ActionLink("submit","DisplaySearchResult","Home"

, new { searchParameter =  Model.searchParameter }

, new AjaxOptions() { HttpMethod ="Post", UpdateTargetId ="Results", InsertionMode = InsertionMode.Replace }, new { id ="DisplaySearchResult" }).

问题是无法将参数传递给模型。 我是MVC4的新手。 有什么方法可以使用jquery或javascript传递参数吗? 我不想在搜索结果期间加载页面。

如我所见,您正在尝试实施搜索表单。 在这种情况下,我避免使用ViewModel,通常这样做:

@Html.TextBox("CityName", string.Empty)

@Html.TextBox("CountryName", string.Empty)

@Html.TextBox("StateName", string.Empty)

然后,您可以使用一些jQuery将值传递给您的action方法:

$("#submit").click(function() {

var $form = $('form');

$.ajax({

type:"GET",

cache: false,

url: '@Url.Action(ActionName, ControllerName)',

data: $form.serialize(),

success: loadResult

});

function loadResult(data)

{

$("#container").html(data);

}

只需确保您的操作方法具有适当的参数CityName, CountryName, StateName,以便正确绑定值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值