2012-12-12 32 views
0

這是我很難爲振興沒有JavaScript的功能..傳遞視圖模型 - 視圖到控制器時,禁用JavaScript

我有一個視圖模型:

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); 
    } 

任何想法??感謝您的幫助

+0

你想做什麼? –

+0

沒有JavaScript複選框只適用於表單。唯一能夠在沒有JavaScript的情況下執行某些操作的是直接鏈接或表單,並且傳遞「修改」數據的唯一方法是表單。 – Silvermind

回答

0

如果CopyCompanies操作方法需要AccountRegisterViewModel對象,那麼您將需要提供它。不幸的是,您將無法使用您在創建鏈接時遵循的方法提供價值。

您的兩個選擇是爲AccountRegisterViewModel中的每個屬性設置一個隱藏字段,然後讓模型綁定創建對象,但即使這樣也不會很理想,因爲viewModel由複雜對象組成,所以您可能會隱藏的領域太多了。

你的第二個選擇,我認爲這是一個更好的方法,那就是傳入某種類型的Id,它對應於CopyCompany可用來查找所需值的AccountRegisterViewModel。

相關問題