【发布时间】:2018-11-27 16:18:33
【问题描述】:
我是 Razor 的新手。我在这个项目上取得了良好的进展,但遇到了一个似乎很容易的主要障碍。我已经阅读了很多关于如何将控件的值作为参数传递给控制器以重定向到新视图的帖子。问题是我要么将值传递给控制器但无法重定向,要么我重定向并且参数未传递。
这是我最近的尝试。我希望将 GetSelectedEmail 的返回值传递给控制器(“selectedEmail”的值)。我可以看到 Javascript 正在获取正确的值并且正在调用控制器,但该值始终为 NULL。
@Html.ActionLink("Get Scoring Report...", "History", "Student", null, new { onclick = "return GetSelectedEmail();" });
<select id="selectedEmail" name="align">
@foreach( var s in Model.Students )
{
<option id=@s.Email>@s.Email</option>
}
</select>
function GetSelectedEmail() {
var str = "new {email=" + $("#selectedEmail").val() + "}";
return str;
}
控制器...
public ActionResult History(string email, string sort)
{
string localEmail="";
if ( email == null || email == "" )
localEmail = AccountProfile.CurrentUser.UserName;
...
我还尝试使用 Ajax 调用控制器,如下所示。控制器确实获得了“selectedEmail”参数,但页面从不重定向。我只是什么都不做。我尝试了是否有带有链接参数的操作链接(如下所示)。
@Html.ActionLink("Get Scoring Report...", "", "", null, new { onclick = "return GetSelectedEmail();" });
<select id="selectedEmail" name="align">
@foreach( var s in Model.Students )
{
<option id=@s.Email>@s.Email</option>
}
</select>
function GetSelectedEmail() {
$.ajax({
url: '/Student/History',
data: { email: $("#selectedEmail").val(), sort: "CaseID" },
type: 'POST',
dataType: 'json',
});
return true;
}
有什么想法吗?
【问题讨论】:
标签: asp.net razor html.actionlink