我想使用href来调用控制器,然后在视图中显示数据。我测试了以下href并且它有效:
<a href="/Samples/Create?id=@Model.ID" class="btn btn-primary btn">Add Sample/a>
但是,我需要传递的id是我可以使用Ajax方法获得的选定记录ID:
var id = $('[name="RadioRequest"]:checked').prop('id');
问题是我无法将id传递给href,因为id不是视图级变量。
问题是:在href中表达此选定(单选按钮)id的语法是什么?我尝试将$('[name="RadioRequest"]:checked').prop('id')
复制并粘贴到href中以获取:
<a href="/Samples/Create?id=$('[name="RadioRequest"]:checked').prop('id')" class="btn btn-primary btn">Add Sample/a>.
它不起作用。
答案 0 :(得分:0)
尝试转发&#34; RadioRequest&#34;
周围的双引号<a href="/Samples/Create?id=$('[name=\"RadioRequest\"]:checked').prop('id')" class="btn btn-primary btn">Add Sample/a>
答案 1 :(得分:0)
我很确定这已经在SO上多次回答了,但只是因为lulz ill提供了一些答案。
首先,您无法将javascript嵌入到href中。除非你使用javascript来改变href属性,否则它将保持静态。
最简单的方法是将其包装在一个表单中。在您的上下文中它可能在语义上是正确的,但如果您将其包装在表单中,它将自动提供您的表单字段(包括所选单选按钮的值。
以下是将其作为表单提交的示例。您必须将其应用于您的代码。
<html>
<body>
<form name="form1" action="" method="get">
<input type="radio" name="rad" value="1"/> <!--You will need to set value dynamically.
<input type="radio" name="rad" value="2"/> You could also change name="rad" to name="id" if you specifically need that to be the name -->
<a href="#" onclick="form1.submit()">Submit</a>
</form>
</body>
</html>
基本上你只需给单选按钮命名即可。提供的值将是选择的任何值(值可能是您的ID)。 action属性是你要发送给它的uri,而method =“get”确保它在查询字符串中提供。 Anchor标签没有网址,只是在表单上执行提交。
如果您想严格按照javascript进行操作,可以选择一些路线。
首先,您可以使用一个事件处理程序来单击单选按钮,以便在您选择它时更改锚标记的href属性。
<html>
<body>
<script type="text/javascript">
var url = "http://www.yahoo.com";
function ChangeUrl(val){
var newUrl = url + "?=" + val;
document.getElementById("myLink").href=newUrl;
}
</script>
<input type="radio" name="rad" onclick="ChangeUrl(1)"/> <!-- onclick should be onselect, but I couldn't get that working in my test code so I went with what works. -->
<input type="radio" name="rad" onclick="ChangeUrl(2)"/>
<a href="#" id="myLink">Submit</a>
</body>
</html>
同样,您需要考虑如何在代码中执行此操作,但这是一个普遍的想法。