Monday, December 29, 2014

MVC Razor: Working with Hidden Fields. Set and Get Hidden Fields.

MVC Razor: Working with Hidden Fields. Set and Get Hidden Fields.
Following code will render a hidden field in MVC Razor view:

<div class="row">
    @using (Html.BeginForm("UpdateModelInfo", "Model", FormMethod.Post))
    {
        @Html.HiddenFor(p => p.ModelItem.Id)
        <div class="form-group col-xs-12">
            @Html.TextAreaFor(p => p.ModelItem.ModelInfo, new { @class = "css-class", rows = 25 })
        </div>
        <div class="col-xs-12">
            <button type="submit" onclick="javascript:GetVal();" class="btn-class">Get Val</button>
            <button type="submit" class="btn-class">Submit</button>
        </div>
    }
</div>
We can also update this hidden field like any other element using jQuery or JavaScript:

<script type="text/javascript">
    function GetVal() {
        alert($('#hdn').val());
    }
</script>
Following is the way to get hidden field value in controller:

[HttpPost]
public ActionResult UpdateMoreInfo(FormCollection collection)
{
    Core.models.Model modl = new Core.models.Families();
    var modlId = collection.GetValue("ModelItem.Id").AttemptedValue;
    var moreInfo = collection.GetValue("ModelItem.ModelInfo").AttemptedValue;
    //perform some other logic here
    Db.SaveChanges();

    return RedirectToAction("Edit", "Model", new { @id = modlId });
}

No comments:

Post a Comment