Not sure if this is the right way to go about this. But, I have two textboxes on a view that are populated by Viewbag from the controller. They are int values. One Value is the Number of units in stock (Viewbag.stock
) and the other is the number of units ordered (Viewbag.ordered
). I have a third textbox that I want to show the value of Viewbag.Stock - Viewbag.Ordered
.
I tried doing this in the controller, but that didn't bring back a result. I also tried doing this in the value of the textbox, and that also did not work.
This is the first way that I tried to accomplish this
Model
public int? OnHand { get; set; }
public int? UnitsOrdered { get; set; }
controller
ViewBag.Stock = r.FirstOrDefault().OnHand;
ViewBag.Ordered = r.FirstOrDefault().UnitsOrdered;
ViewBag.Total = ViewBag.Stock - ViewBag.Ordered;
View
<div class="form-group">
@Html.LabelFor(model => model.UnitsOrdered, (string)"Units On Hand ", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.TextBox("OnHand", null, new { @class = "form-control", Value = ViewBag.Stock, @readonly = "readonly" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.UnitsOrdered, (string)"Number of Units Ordered", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.UnitsOrdered, new { htmlAttributes = new { @class = "form-control", @readonly = "readonly" } })
@ViewBag.MyCountIntro @ViewBag.MyCount
@Html.ValidationMessageFor(model => model.UnitsOrdered, "", new { @class = "text-danger" })
</div>
</div>
<div class="col-md-10">
@Html.TextBox("Remaining", null, new { @class = "form-control", Value = ViewBag.Total, @readonly = "readonly" })
</div>
In the above scenario, Viewbag.Stock is 60. Viewbag.Ordered is 2. Viewbag.Total should be 58. But instead, it is blank
I have also tried to calculate this in the view, itself. Which also yields a blank.
<div class="col-md-10">
@Html.TextBox("Remaining", null, new { @class = "form-control", Value = ViewBag.Stock - Viewbag.Ordered, @readonly = "readonly" })
</div>