这就是故事:
我正在制作评论系统,当用户想要添加评论时,他们需要将数据放入文本区域。我希望获取用户输入的值,并创建一个@Ajax链接,将其作为参数发送给控制器。
我正在使用ASP.NET MVC5,在我的View()中,我有以下内容:
<textarea class="textArea" rows="3"></textarea>
<br />
@Ajax.ActionLink("Send",
"AddComment",
new { parametar = 0 , Contents = GetText() },
new AjaxOptions
{
UpdateTargetId = "beforeThis",
InsertionMode = InsertionMode.InsertBefore,
HttpMethod = "GET"
},
new { @class = "postavi btn btn-primary" })
我尝试在下面插入以下内容:
<script type="text/javascript">
function GetText() {
return "hello there!";
}
</script>
我错误地说:
当前上下文中不存在名称GetText (这是@ Ajax.ActionLink的参数)
似乎我无法集成javascript(它可以取我这个值和剃刀代码)我该如何解决这个问题? PS&GT;我一直在寻找这个,并且当我尝试使用MVC或更早版本的答案时,答案都没有用。
答案 0 :(得分:0)
确保导入此命名空间:
using System.Web.Mvc.Ajax
答案 1 :(得分:0)
您可以向ajax链接添加事件处理程序以更新自定义路由值。
@Ajax.ActionLink("Click", "Send", new {id = "xxx"}, new AjaxOptions(){}, new { onclick = "addParameter(this)" })
function addParameter(e) {
e.href = e.href.replace("xxx", "HelloWord");
}
答案 2 :(得分:0)
您现在正在做的是您希望剃刀调用您的JavaScript代码,这是不可能的。这是因为Razor在将它们发送到客户端并且Razor不知道JavaScript代码之前会将视图呈现为HTML,它只知道C#。所有JavaScript代码都在浏览器上运行。
我建议你使用POST方法发送你的评论。 您可以使用此代码发送它们:
====