Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.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# @Html.TextBoxFor不显示特定值_C#_Asp.net_Asp.net Mvc_Razor_Helper - Fatal编程技术网

C# @Html.TextBoxFor不显示特定值

C# @Html.TextBoxFor不显示特定值,c#,asp.net,asp.net-mvc,razor,helper,C#,Asp.net,Asp.net Mvc,Razor,Helper,我正在用Razor在ASP.Net中开发一个网站 对于我的表单,我使用的是Helpers(比如@Html.TextBoxFor),我不想显示特定的值。这很难解释,所以这里有一些代码 我的模型 public class SearchedInstruction { private int _workCenterNumber= -1; public int WorkCenterNumber { get { return _idWorkCenter; }

我正在用Razor在ASP.Net中开发一个网站

对于我的表单,我使用的是Helpers(比如
@Html.TextBoxFor
),我不想显示特定的值。这很难解释,所以这里有一些代码

我的模型

public class SearchedInstruction
{
    private int _workCenterNumber= -1;
    public int WorkCenterNumber
    {
        get { return _idWorkCenter; }
        set { _idWorkCenter = value; }
    }
}
我的看法

@model InstructionSearchViewModel

@using (Html.BeginForm("InstructionSearch", "Search", FormMethod.Post, new { onsubmit = "submitSearchInstruction()" }))
{
    <div class="col-md-3">
        @Html.Label("Poste de charge")
        @Html.TextBoxFor(m => m.WorkCenterNumber, new { @class = "form-control" })
    </div>
}
@model指令搜索视图模型
@使用(Html.BeginForm(“指令搜索”、“搜索”、FormMethod.Post、new{onsubmit=“submitsarchinstruction()”}))
{
@Html.Label(“收费邮件”)
@Html.TextBoxFor(m=>m.WorkCenterNumber,新的{@class=“form control”})
}
因此,当然,我的
输入
这里的值是
-1
,因为我甚至在一些其他视图中使用了这个部分,其中
WorkCenterNumber
-1
不同

因此,我只想在
WorkCenterNumber
与-1不同时才显示它

这似乎有点愚蠢,但我希望助手们能让我这样做

谢谢


编辑:通过注释添加的其他随机信息:“SearchedInstruction是我公司自定义框架的一个模型,因此我不允许更改此内容

只需将您的get更改为符合逻辑的以下内容:

public class SearchedInstruction
{
    private int _idWorkCenter = -1;
    public string IdWorkCenter
    {
        get { return _idWorkCenter != -1 ? _idWorkCenter : string.Empty; }
        set { _idWorkCenter = value; }
    }
}

只需将get更改为符合逻辑的以下内容:

public class SearchedInstruction
{
    private int _idWorkCenter = -1;
    public string IdWorkCenter
    {
        get { return _idWorkCenter != -1 ? _idWorkCenter : string.Empty; }
        set { _idWorkCenter = value; }
    }
}
不要使用

在这里,您使用-1表示用户尚未指定,但可能不是,这就是为什么您不使用数字来表示含义

在这种情况下,我将
int
更改为
可为null的int
,然后默认值将为null,文本框在第一次加载时将为空

编辑:通过评论添加的附加随机信息:“SearchedInstruction是我公司自定义框架的模型,因此我不允许更改此内容”

在这种情况下,为您的视图添加一个新的
ViewModel
,并在其中映射值(例如使用AutoMapper或任何类似工具)

更改视图以使用此viewmodel

@model SearchedInstructionViewModel
并填充到控制器中

var model = db.SearchedInstruction.Load...  // however you load the *model*
var viewModel = new SearchedInstructionViewModel();
viewModel.IdWorkCenter = model.IdWorkCenter;
// etc, or use an automapper

return View(viewModel);
不要使用

在这里,您使用-1表示用户尚未指定,但可能不是,这就是为什么您不使用数字来表示含义

在这种情况下,我将
int
更改为
可为null的int
,然后默认值将为null,文本框在第一次加载时将为空

编辑:通过评论添加的附加随机信息:“SearchedInstruction是我公司自定义框架的模型,因此我不允许更改此内容”

在这种情况下,为您的视图添加一个新的
ViewModel
,并在其中映射值(例如使用AutoMapper或任何类似工具)

更改视图以使用此viewmodel

@model SearchedInstructionViewModel
并填充到控制器中

var model = db.SearchedInstruction.Load...  // however you load the *model*
var viewModel = new SearchedInstructionViewModel();
viewModel.IdWorkCenter = model.IdWorkCenter;
// etc, or use an automapper

return View(viewModel);

完全误解了他的要求。很好的回答也考虑了这一点,但是
SearchedInstruction
是来自我公司定制框架的模型,所以我不允许更改它:/@LeZohan68,在将模型传递到视图之前在控制器中更改它完全误解了他的要求。很好的回答也考虑了这一点,但是
SearchedInstruction
是来自我公司自定义框架的模型,因此我不允许更改此命令:/@LeZohan68,在将模型传递到视图之前在控制器中更改它假设您的意思是
@Html.TextBoxFor(m=>m.IdWorkCenter)
(不是
WorkCenterNumber
)。一如既往,请使用视图模型并将数据模型映射到视图模型。如果值为-1,则不要设置它(视图模型属性应为
int?
假设您的意思是
@Html.TextBoxFor(m=>m.IdWorkCenter)
(不是
WorkCenterNumber
)。一如既往,使用视图模型并将数据模型映射到视图模型。如果值为-1,则不要设置它(视图模型属性应为
int?
如下所示,我不允许更改模型,但正如@ammarces所说,我将在控制器中更改它。实际上,我更喜欢您的版本。(我想在提交表单时保留一个int)。谢谢你们两位!请在问题中添加此要求/限制!如下所示,我不允许更改模型,但正如@ammarces所说,我将在控制器中更改它。我实际上更喜欢您的版本。(我想在提交表单时保留一个int).谢谢你们两位!请在问题中添加此要求/限制!