我有一个 View Details
,它由一个部分 View _Tabs
和第二个部分 View _Contents
组成。
在其中一个局部 View (_Tabs
) 中,我有一个图像链接,在 onclick
函数中,我传递了一个变量 CatID
。
此变量包含分部 View 的 ViewModel 的属性值(称为 TabsForItemViewModel
)。
调试时,点击图片时,VS显示:
Microsoft JScript runtime error: 'CatID' is undefined
局部 View “_Tabs”:
部分 View _Tabs
的 View 模型是 TabsForItemViewModel
@model TabsForItemViewModel
@{
int CatID = Model.CategoryInfo.CatID;
}
<ul>
<li>
<a href="#GoToCatLevel">
<img border="0" src="view_cat.png" alt ="Up" title="Go To This Category"
width="10" height="10" onclick="LoadCategoryData(CatID, this.href)" />
</a>
</li>
...
查看“详细信息”:
@model ItemDetailsViewModel
@{
ViewBag.Title = "Item Details";
}
<div id="Main">
...
CategoryInfoViewModel categoryData = new CategoryInfoViewModel(itemD.Ca_ID);
TabsForItemViewModel tabsForItem = new TabsForItemViewModel(categoryData);
<div id="Tabs" class="div-tab">
@{Html.RenderPartial("~/Views/Item/_Tabs.cshtml", tabsForItem );}
</div>
...
</div>
最佳答案
CatID
不是 Javascript 变量...它是需要呈现到页面中的 c# 变量。使用 Razor 语法,这将是:
onclick="LoadCategoryData(@CatID, this.href)"
关于作为参数传递给 onclick() 的 C# 变量未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11153060/