使用MVC 6从视图中调用部分类中的C#方法时遇到问题

时间:2014-12-31 15:55:18

标签: c# asp.net asp.net-mvc

我有一个名为Skill的数据库表用于生成我的模型,其中包含一个字段SkillIndex,它是一个小型(字节)索引到枚举类型SkillEnum。我想使用skillToString()将枚举类型值映射到它们的String对应项。当我调用视图创建的索引链接时,不会解析生成的项。以下是详细信息:

PARTIAL CLASS(部分):

namespace RpgApp2.Models
{
  public enum SkillEnum { Appraise, Bluff, Climb, Diplomacy, Intimidate, Jump, Perception };

  [MetadataType(typeof(SkillMetaData))]
  public partial class Skill
  {
    Utility util;

    public String skillToString()
    {
        byte i = (byte) this.SkillIndex;
        switch (i)
        {
            case (byte)SkillEnum.Appraise: return "Appraise";
            case (byte)SkillEnum.Bluff: return "Bluff";
            case (byte)SkillEnum.Diplomacy: return "Diplomacy";
            case (byte)SkillEnum.Climb: return "Climb";
            case (byte)SkillEnum.Intimidate: return "Intimidate";
            case (byte)SkillEnum.Jump: return "Jump";
            case (byte)SkillEnum.Perception: return "Perception";
            case (byte)SkillEnum.Ride: return "Ride";
            case (byte)SkillEnum.Spellcraft: return "Spellcraft";
            case (byte)SkillEnum.Survival: return "Survival";

            default: return "No matching skill for " + (int)i;
        }

查看源代码(Index.cshtml,partial):

@foreach (var item in Model) {
  <tr>
    <td>
        @Html.DisplayFor(modelItem => item.CharacterIndex)
    </td>
    <td>
         <% item.SkillToString(); %>
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Ranks)
    </td>

OUTPUT SOURCE(即查看Internet Explorer中生成的页面源:

<tr>
    <td>
        1
    </td>
    <td>
         <% item.SkillToString(); %>
    </td>
    <td>
        1
    </td>
    <td>
        3
    </td>

<% item.SkillToString(); %>呈现为自身并在网页中显示为空白,而我想要&#34;外交&#34;显示值为3。

在当前项目(即技能)上调用方法skillToString()方法需要什么?

1 个答案:

答案 0 :(得分:1)

由于您使用的是Razor视图引擎,因此可以使用:

@item.SkillToString()