Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 单选按钮是否使用枚举只读?_C#_Asp.net_Sql_Html_Asp.net Mvc 4 - Fatal编程技术网

C# 单选按钮是否使用枚举只读?

C# 单选按钮是否使用枚举只读?,c#,asp.net,sql,html,asp.net-mvc-4,C#,Asp.net,Sql,Html,Asp.net Mvc 4,在开发ASP.NETMVC4应用程序时,我遵循了上的答案和它的来源,但我的问题仍然存在 我正在创建一个编辑页面,希望将状态显示为两个单选按钮“Active”和“InActive”,这些值从数据库中读取为Enums 1=Active,2=InActive 问题是,当页面显示时,它会显示与数据库值相对应的正确单选按钮,但不允许用户更改/选择其他单选按钮 任何想法都会让我发疯 (同时,将chkbox的属性更改为bool将导致比此时解决的问题更多的问题。) 控制器 [HttpPost] p

在开发ASP.NETMVC4应用程序时,我遵循了上的答案和它的来源,但我的问题仍然存在

我正在创建一个编辑页面,希望将状态显示为两个单选按钮“Active”和“InActive”,这些值从数据库中读取为Enums 1=Active,2=InActive

问题是,当页面显示时,它会显示与数据库值相对应的正确单选按钮,但不允许用户更改/选择其他单选按钮

任何想法都会让我发疯 (同时,将chkbox的属性更改为bool将导致比此时解决的问题更多的问题。)

控制器

   [HttpPost]
    public ActionResult Edit(NewsArticle newsArticle, int id, HttpPostedFileBase Article)
    {
        try
        {
            if (ModelState.IsValid)
            {

             NewsArticle savedArticle= _newsArticle.Get(id);

             savedArticle.Body = newsArticle.Body;
             savedArticle.Title = newsArticle.Title;
             savedArticle.Status = newsArticle.Status;

             if(Article == null)
             {
                 newsArticle.ArticleImage = savedArticle.ArticleImage;
             }
             else
             {
                 using (var binaryReader = new BinaryReader(Request.Files[0].InputStream))
                 {
                     newsArticle.ArticleImage = binaryReader.ReadBytes(Request.Files[0].ContentLength);
                 }

                 savedArticle.ArticleImage = newsArticle.ArticleImage;

                 string imgeName = Path.GetFileName(Article.FileName);

                 savedArticle.ImageName = imgeName;

             }



             _uow.SaveChanges();
                return RedirectToAction("Index");
            }
视图

<div class="control-group">
    <div class="editor-field">
        <label class="control-label">Select Status :</label>
        <div class="controls">

            @Html.RadioButtonForEnum(n => n.Status)

               </div>
        </div>
    </div>
明白了

将我的原始模型(文章)添加到viewModel并添加了bool属性。。。。活跃的

      public bool Active
    {
        get
        {
            if (this.Article != null)
            {
                return (this.Article.Status == NewsArticleStatus.Active);
            }
            return false;
        }
        set
        {
            if (this.Article != null)
            {
                this.Article.Status = (value ? NewsArticleStatus.Active : NewsArticleStatus.Inactive);
            }
        }
    }  
创建chkbox

  @Html.CheckBoxFor(n => n.Active)
因此,在控制器中,只需将值分配给新模型

 newNews.Status = model.Article.Status;

出于好奇,枚举是否必须具有
[Flags]
属性?我认为这意味着
Active
Inactive
(=
3
)将是一个有效值……不,您的权利可以删除。很抱歉,否则没有多大帮助。隐马尔可夫模型。。。当用户尝试选择另一个单选按钮时,页面会被刷新并从数据库中重新选择值吗?这意味着一些onchange方法应该设置值,因此当页面刷新时,将采用设置的值,而不是数据库中的值。一点也不,感谢您花费时间,我不这么认为,因为在生成页面时,根据数据库选择了当前值。
  @Html.CheckBoxFor(n => n.Active)
 newNews.Status = model.Article.Status;