我是新手,所以如果我提出一个荒谬的问题,请耐心等待......
我正在尝试将id
发布到我的操作结果上,使用$.post
更改了下拉值,但是它可以正常工作,但它会返回到相同的视图,但我想让它呈现不同的视图< / p>
这是我的jquery代码,它位于home / index
$('#select-supplier').change(function (e) {
var atrVal = $(this).val();
if (atrVal != '') {
$.post('<%=Url.Action("SupplierSelect","Supplier")%>', { id: atrVal });
// alert('value changed ' + atrVal);
} else { alert('please select a value'); }
});
这是我的控制器端(SupplierController)
public class SupplierController : Controller
{
public ActionResult SupplierSelect(int id)
{
//some code
return View();
}
}
而不是渲染SupplierSelect
视图,而是从它所在的主页/索引返回
提前预订
答案 0 :(得分:1)
$ .post向服务器发送(HTTP POST)请求,响应返回到post方法,而不是浏览器。听起来你想要的是从javascript重定向到另一个页面。因此,您需要执行重定向而不是帖子,如下所示:
window.location = '<%= Url.Action(...)';
答案 1 :(得分:0)
我看不到你对$ .post()调用成功采取任何行动。理想情况下,您将使用返回的html填充页面上的其他元素。
喜欢
$.post('<%=Url.Action("SupplierSelect","Supplier")%>', { id: atrVal }, function(data) {
$('#supplier_div').html(data);
});
如果它应该去一个完全不同的页面,那么你只想提交表单而不是使用AJAX?