我在这里或其他地方看到的很多答案都使用了条件if
语句,数据从Controller
传递到View
,这不是我的方式能做到这一点。
我的页面上有ActionLink
根据所选的下拉值显示或隐藏。我使用的jquery
如下
$(function checkTotalRows() {
if ($('#productParameters>tr').length > 0) {
var link = document.getElementById('AddNewItem');
$('#AddNewItem').hide();
} else {
$('#AddNewItem').show();
}
});
这将显示/隐藏以下内容:
@Html.ActionLink("Add New Product", "AddProduct", new { productId= ?}, new {@id="AddNewItem" })
我遇到的问题是我列出HTML attribute
的{{1}},我不知道如何通过new { productId = ? }
设置此项,或者即使可能这样做?的?给出productId的价值只是我在这篇文章中的说法我不知道什么,除了明确说明Model.something,应该去那里。
我是否可以通过某种方式将ID传递给此属性?
答案 0 :(得分:2)
我建议您在-1
中使用?
代替new { productId= -1}
。基本上使用-1
作为占位符,您可以使用所需的产品ID替换后者
@Html.ActionLink("Add New Product", "AddProduct", new { productId= -1}, new {@id="AddNewItem" })
要替换它使用使用jQuery .prop()函数,您可以获取href属性并像
一样更新它var elem = $('#AddNewItem');
var newUrl = elem.prop('href').replace('-1', 'YourProductId');
elem.prop('href', newUrl);
答案 1 :(得分:0)
如果您认为页面中只有一个Id=AddNewItem
,并且您的模型中设置了产品ID
@Html.ActionLink(
linkText: "Add New Product",
actionName: "AddProduct",
controllerName: "Product",
routeValues: new {
productId= Model.ProductId
},
new {@id="AddNewItem"}
)