Asp.net mvc 如何通过<;部门>;ASP.Net MVC中的其他控制器的值?
我有主页和客户控制器 家庭控制器Asp.net mvc 如何通过<;部门>;ASP.Net MVC中的其他控制器的值?,asp.net-mvc,asp.net-mvc-5,Asp.net Mvc,Asp.net Mvc 5,我有主页和客户控制器 家庭控制器 public ActionResult Index() { return view() } public ActionResult Customer() { return view() } Index.cshtml <div class="card" data-csid="jieg83ndks90"> </div> 注意:我想从index.cshtml重定向到Customer.cshtml,并将值(jieg83nd
public ActionResult Index()
{
return view()
}
public ActionResult Customer()
{
return view()
}
Index.cshtml
<div class="card" data-csid="jieg83ndks90">
</div>
注意:我想从index.cshtml重定向到Customer.cshtml,并将值(jieg83ndks90)也传递到Customer.cshtml
你问了几个问题:
- 如何在JavaScript中处理单击事件
- 如何在JavaScript中获取数据-*值
- 如何在JavaScript中重定向
- 如何在URL上包含值
- 如何在操作方法中接收值
$('div.card').on('click', function () {
});
这将在用户使用class=“card”
单击
时调用该函数(当前为空)。在该函数中,您希望获取单击的
的data-*属性的值:
$('div.card').on('click', function () {
let csid = $(this).data('csid');
});
现在您需要重定向到URL并包含该值。在ASP.NET MVC中构建URL有多种方法,有些方法在JavaScript中使用时有有趣的变通方法。但让我们保持简单。使用Url.Action
helper,记住用JavaScript将其括起来,因为它是一个字符串:
$('div.card').on('click', function () {
let csid = $(this).data('csid');
let url = '@Url.Action("Customer", "Customer")';
});
(建议您查看浏览器中的页面源以查看生成的内容。)并且您可以将该值添加到生成的URL的查询字符串中:
$('div.card').on('click', function () {
let csid = $(this).data('csid');
let url = '@Url.Action("Customer", "Customer")' + '?csid=' + csid;
});
然后使用该URL:
重要提示:差异似乎不重要,但理解发生的事情的语义非常重要。您没有将用户重定向到Customer.cshtml
。您正在将用户重定向到控制器上的操作方法。当该操作方法返回一个视图时,该视图将是Customer.cshtml
当您想要使用查询字符串上的值时,这一点变得非常重要。因为用户要使用action方法,所以在action方法中获取该值:
public ActionResult Customer(string csid)
{
return View();
}
现在问题显然变成了。。。您计划如何处理该csid
值。这差不多就是你问题的背景。此时,您已使用该值重定向用户,如何使用该值取决于您自己。如果要将其从控制器操作传递到视图,则标准方法是在传递到视图的模型上设置值。例如:
public ActionResult Customer(string csid)
{
var model = new SomeViewModel { CSID = csid };
return View(model);
}
然后,在您的视图中,将这一行放在顶部以绑定到该模型:
@model SomeViewModel
从那里,您可以在视图中的任何位置访问
Model.CSID
。您提出了几个问题:
- 如何在JavaScript中处理单击事件
- 如何在JavaScript中获取数据-*值
- 如何在JavaScript中重定向
- 如何在URL上包含值
- 如何在操作方法中接收值
$('div.card').on('click', function () {
});
这将在用户使用class=“card”
单击
时调用该函数(当前为空)。在该函数中,您希望获取单击的
的data-*属性的值:
$('div.card').on('click', function () {
let csid = $(this).data('csid');
});
现在您需要重定向到URL并包含该值。在ASP.NET MVC中构建URL有多种方法,有些方法在JavaScript中使用时有有趣的变通方法。但让我们保持简单。使用Url.Action
helper,记住用JavaScript将其括起来,因为它是一个字符串:
$('div.card').on('click', function () {
let csid = $(this).data('csid');
let url = '@Url.Action("Customer", "Customer")';
});
(建议您查看浏览器中的页面源以查看生成的内容。)并且您可以将该值添加到生成的URL的查询字符串中:
$('div.card').on('click', function () {
let csid = $(this).data('csid');
let url = '@Url.Action("Customer", "Customer")' + '?csid=' + csid;
});
然后使用该URL:
重要提示:差异似乎不重要,但理解发生的事情的语义非常重要。您没有将用户重定向到Customer.cshtml
。您正在将用户重定向到控制器上的操作方法。当该操作方法返回一个视图时,该视图将是Customer.cshtml
当您想要使用查询字符串上的值时,这一点变得非常重要。因为用户要使用action方法,所以在action方法中获取该值:
public ActionResult Customer(string csid)
{
return View();
}
现在问题显然变成了。。。您计划如何处理该csid
值。这差不多就是你问题的背景。此时,您已使用该值重定向用户,如何使用该值取决于您自己。如果要将其从控制器操作传递到视图,则标准方法是在传递到视图的模型上设置值。例如:
public ActionResult Customer(string csid)
{
var model = new SomeViewModel { CSID = csid };
return View(model);
}
然后,在您的视图中,将这一行放在顶部以绑定到该模型:
@model SomeViewModel
从那里,您可以在视图中的任何位置访问
Model.CSID
。您如何准确地重定向用户?您可以在重定向中包含该值,并在控制器操作方法中接收该值。@David您能检查更新吗?您到底是如何重定向用户的?您可以在重定向中包含该值,并在控制器操作方法中接收该值。@David您能检查更新吗