无法点击按钮接受

时间:2013-02-26 18:52:41

标签: asp.net-mvc razor asp.net-mvc-4

我目前有以下表格中的链接:

<a href="javascript:changeNumbers('Numbers', '@Url.Action("ChangeNumbers")')">Change</a>

为了适应我正在添加此链接的网站的外观,我想将其更改为按钮输入,如下所示:

<input type="button" value="Change" onclick="changeNumbers('Numbers', '@Url.Action("ChangeNumbers")')" />

但是,我遇到了第二种形式的问题:@Url.Action("ChangeNumbers")周围的单引号被标记为Unterminated string constant。任何人都可以告诉我我做错了什么以及如何解决它?

修改

我没有想到只是尝试页面 - 它看起来像第二种形式。所以现在我的问题是 - 为什么Visual Studio将此标记为不正确?

2 个答案:

答案 0 :(得分:1)

你本身并没有做任何“不正确”的事情,只是Razor并不完美,而引号内的引语往往会让它变得怪异。

一个快速解决方法是将URL存储在变量中,然后使用变量:

@{ var url = Url.Action("ChangeNumbers"); }
<input type="button" value="Change" onclick="changeNumbers('Numbers', '@url')" />

但是,更好的解决方法是根本不使用onclick属性。把它放在它所属的地方:在JS。

<script>
    $('#myButton').on('click', function () {
        changeNumbers('Numbers', '@Url.Action("ChangeNumbers")');
    });
</script>

上面使用的jQuery,因为它默认包含在MVC中

答案 1 :(得分:0)

我发现要在这种情况下让Visual Studio感到满意,最简单的方法就是将<input />元素更改为<button></button>元素,错误将自行解决:< / p>

<button type="button" onclick="changeNumbers('Numbers', '@Url.Action("ChangeNumbers")')">Change</button>

否则,要继续使用<input />,需要将标记更改为以下内容:

<input type="button" value="Change" onclick="@("changeNumbers('Numbers', '" + Url.Action("ChangeNumbers") + "')")" />