MVC4 cshtml页面函数调用

时间:2016-07-22 17:52:46

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

首次加载时,我需要在mvc页面上的可编辑文本框中显示一个值(如果存在)。我有一个功能,将负责获取我需要的值,但我需要从当前模型传递参数,以从数据库中获得我需要的。 我遇到的问题是将此值放入文本框中。我试过的是

CSHTML:

@Html.TextBoxFor(model => model.AdjustedLiabilityAmount, new { @Value=OBS_LIB.BLL.JeopardyAssessment.JeopardyAssessment.GetLatestAdjustedLiabilityAmount(Model.DOTNumber, Model.LiabilityAmount))}

我得到一个红色波浪形的“当前上下文中不存在名称'值'”

所以我尝试了一种我读过的不同技术,就像这样。

控制器:

public ActionResult Index()
    {
        ViewBag.AdjustedValue = OBS_LIB.BLL.JeopardyAssessment.JeopardyAssessment.GetLatestAdjustedLiabilityAmount(Model.DOTNumber, Model.LiabilityAmount);

CSHTML:

@Html.TextBoxFor(model => model.AdjustedLiabilityAmount, new { @Value=ViewBag.AdjustedValue)}

这次我得到了红色波浪形的“名字'模型'在当前背景下不存在。”

我确信我只是缺少一些基本的东西,因为我是MVC的新手。

非常感谢任何帮助。

整个ActionResult索引:

public ActionResult Index()
    {
        ViewBag.AdjustedValue = OBS_LIB.BLL.JeopardyAssessment.JeopardyAssessment.GetLatestAdjustedLiabilityAmount(Model.DOTNumber, Model.LiabilityAmount);
        var Report = new OBS_LIB.DTO.JeopardyAssessmentReport();
        Report.Stage = 1;
        Report.Status = "Active";
        Report.ReportItems = OBS_LIB.BLL.JeopardyAssessment.JeopardyAssessment.GetJAReportItems(Report.Stage, Report.Status);
        return View(Report);
    }

3 个答案:

答案 0 :(得分:2)

你想做这样的事情:

类别:

public class ModelClassHere {
     public float Liability {get;set;}
}

控制器:

public ActionResult Index(ModelClassHere model) {
    model.Liability = 10.00;
    return View(model); // pass model to the view
}

查看:

@Html.TextBoxFor(x => x.Liability) // 'x' can be anything

编辑*

如果您已有型号并需要传递一个简单值:

控制器:

public ActionResult Index(ModelClassHere model, string otherValue) {
    model.Liability = 10.00;
    ViewBag.Liability = model.Liability;
    return View(model); // pass model to the view
}

查看:

<input type="text" id="otherValue" name="otherValue" value="@ViewBag.Liability.ToString()" />

答案 1 :(得分:2)

你可以使用 @ Html.TextBox(&#34; AdjustedLiabilityAmount&#34;,(Decimal)ViewBag.AdjustedValue)}

或者

@ Html.TextBox(&#34; AdjustedLiabilityAmount&#34;,Model.AdjustedLiabilityAmount == null?(Decimal)ViewBag.AdjustedValue:Model.AdjustedLiabilityAmount)}

在十进制类型中,您可以输入所需的类型。

答案 2 :(得分:1)

你需要传递你的模型 控制器

    return view(myModelName);

确保您可以在控制器中访问它。

您的视图也必须在顶部的@model行中引用该模型。

最后要调用模型,它将是

观点:

    Model.myModelName