在.net MVC中提交时从单选按钮返回ViewModel

本文关键字:单选按钮 返回 ViewModel 提交 net MVC | 更新日期: 2023-09-27 18:02:22

我已经返回了带有对象变量细节的模型视图。每个对象可以有一个以上的变体。

@model ViewModels.ObjectDetailViewModel
<div>
@Model.ObjectDescription
@Model.ObjectPrice
</div>

正如您在我的视图中看到的,我使用了来自所选变量的细节。但在同一页面,我也有单选按钮来改变变体。因此,我将变量存储在TempData中,并在单选按钮中显示它们,例如:

@using (Html.BeginForm("AddToBasket", "Basket", FormMethod.Post))
{
    Choose size:
    @foreach (var objecct in TempData.Peek("Variants") as IList<ViewModels.ObjectDetailViewModel>)
    {
            @Html.RadioButtonFor(p => Model.VariantID, @objecct .VariantID, options) @objecct .VariantName (@CurrencyHelper.FormatCurrency(object.Price.ToString()))
    }
    <input type="submit" class="btn btn-lg btn-success" value="Add to basket" style="margin-top:10px;" />
}

在Basket控制器中,我已经返回了我的ObjectDetailViewModel,但只有VariantId被设置(因为我为这个字段连接了单选按钮)。

我怎么能得到模型与所有设置字段,如ObjectDescription和ObjectPrice?我应该做一些@Html。LabelFor这个字段?

在.net MVC中提交时从单选按钮返回ViewModel

您可以使用@Html.HiddenFor(...)提交这些字段,而不向用户显示。

您还可以在提交期间执行服务器端查找以获取该信息。