C# 从razor文件传递枚举值

C# 从razor文件传递枚举值,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我有一个myfile.cs文件和myview.cshtml文件。枚举在myfile.cs文件中声明。它们显示在myview.cshtml中,但这些值必须转到General.js文件,然后使用.post方法从那里转到另一个PerformSave.cs文件 所以我想传入int值。例如,我想通过法国的PerformSave1。你知道我该怎么做吗 myfile.cs namespace mynamespace.Models { public enum country { England, //

我有一个myfile.cs文件和myview.cshtml文件。枚举在myfile.cs文件中声明。它们显示在myview.cshtml中,但这些值必须转到General.js文件,然后使用.post方法从那里转到另一个PerformSave.cs文件

所以我想传入int值。例如,我想通过法国的PerformSave1。你知道我该怎么做吗

myfile.cs
namespace mynamespace.Models
{
public enum country
{
   England,  // 0
   France,   // 1
   Germany   // 2
 }

 public country CustCountry { get; set; }
 ...

 }

my.cshtml
<button id="Save" class="button">Save</button><br>
<script>
      $("#Save").click(function () {
      PerformSave(@Model.CustCountry);
      }
</script>

general.js
PerformSave: function (country) {
  $.post(URL , { country },function (data,status, xhr) {

  }
}

我想你在某个地方有一个下拉列表,你可以从中选择国家。将字符串从Country转换为CountryEnum,然后再转换回int

从字符串到枚举:

var country = (CountryEnum) Enum.Parse( typeof(CountryEnum), "France", true );
从枚举到Int:

var value = (int) country;

现在,该值的国家ID将不清楚您想要做什么。如何呈现属性CustCountry的控件?您要发回的控制器方法是什么。注意@Model.CustCountry将发回原始值,而不是视图中已修改的值。