首页 文章

传递ViewModel - 在禁用JavaScript时查看控制器

提问于
浏览
0

在没有JavaScript的情况下开发功能对我来说很难 .

我有一个ViewModel:

public class AccountRegisterViewModel
{
    #region Properties
    public User User { get; set; }
    public ExternalAccounts ExtAccounts { get; set; }
    public LocalPassword Password { get; set; }
    public Company CompanyARegister { get; set; }
    public Company CompanyBRegister { get; set; }
    public bool SameCompanies { get; set; }
    public int NbCompanies { get; set; }
    ...
 }

在视图中,我有一个复选框链接用于复制第一个公司与第二个但我不知道如何通过这个viewModel(查看到控制器)保持我的数据并返回与公司的copie相同的视图..

我试着看一下:

@Html.ActionLink("Click", "CopyCompanies","Account", new { model = Model })             
    @Html.CheckBoxFor(model => model.SameCompanies)

在控制器中:

[AllowAnonymous]
    public ActionResult CopyCompanies(AccountRegisterViewModel model)
    {

        ...
        if (model.SameCompanies)
        {
           // copie
        }else //clear
        ...
        return View("Step2Register", model);
     }

任何的想法 ??谢谢您的帮助

1 回答

  • 0

    如果CopyCompanies操作方法需要AccountRegisterViewModel对象,则需要提供它 . 遗憾的是,您无法使用创建链接时所遵循的方法来提供值 .

    你的两个选择是在AccountRegisterViewModel中为每个属性设置一个隐藏字段,然后让模型绑定创建对象,但即使这样也不理想,因为viewModel由复杂对象组成,所以你会有太多的隐藏领域 .

    我认为第二种选择是更好的方法,就是传递某种与AccountRegisterViewModel相对应的Id,CopyCompany可以使用它来查找它需要的值 .

相关问题