作为参数传递给 onclick() 的 C# 变量未定义

标签 c# javascript .net asp.net-mvc exception

我有一个 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/

相关文章:

c# - FolderBrowserDialog C# SelectedPath 始终显示在底部

c# - 仅从一个地方进行类实例化的模式?

javascript - 单击菜单项不会向下滚动到页面上的部分

c# - 使用 .NET 从邮件帐户获取附件

c# - 我应该测试 ASP MVC 项目中的属性吗?

c# - Entity Framework Linq何时查询Hints Sql数据库?

c# - 生成随机数的算法?不要使用 System.Random

.net - 从 XLSX 导出大量数据 - OutOfMemoryException

javascript - Chrome 扩展 - 如何从回调中执行的脚本返回 promise 值

javascript - 视觉 : Table filter on column name with condition