我正在尝试将强类型 ViewBag 从 Controller 传递到 View,然后从 View 调用 jquery 链接单击上的静态方法,该方法使用 View bag 属性作为参数。
在控制器中,我有
public ActionResult LoginUser(string userName, string password)
{
MyMembershipUser myUser = runtime.MyMembership.GetUser(userName);
**ViewBag.MyUser = myUser;** //Here I assign user to ViewBag so I can pass it to
return View("Login"); // View and from there as paramater to static method.
}
在我的“登录”视图下面,我有在脚本中调用我的 SendEmail 静态方法的代码。
<div id="login">
<p>
<span class="link" id="link">Generate Email.</span><br />
</p>
</div>
<script type="text/javascript">
$('#link').click(function () {
@SendEmailClass.SendEmail(ViewBag.MyUser);// Here I pass User from ViewBag to
// static Method
});
</script>
下面是我使用静态方法的静态类。
public static class SendEmailClass
{
public static void SendEmail(MyMembershipUser myUser)
{
SendEmail(myUser, string.Empty, string.Empty, string.Empty, string.Empty);
}
}
由于控件尝试从 View 调用静态方法。它失败,异常为“无法将类型 'void' 隐式转换为 'Object'”。
即使我尝试在方法调用中强制转换它,类似这样的东西也会@SendEmailClass.SendEmail((MyMembershipUser)ViewBag.MyUser)
给出同样的错误。
我的操作方法返回类型有问题吗?我不想在这里返回任何东西。我只想发邮件。