1

我試圖使用IEnumerable,因此它包含多個選擇,因此用戶可以在我的列表框中選擇多個然後一個值。使用MVC中的IEnumerable選擇和添加多個值

這是我的視圖模型看起來像:

public class CreateViewModel 
{ 
    public IEnumerable<string> SelectedValues { get; set; } 
    public IEnumerable<CoreValue> CoreValues { get; set; } 
} 

這是我在我的控制器GET:

public ActionResult Create() 
{   
    CreateViewModel model = new CreateViewModel(); 
    model.CoreValues = AdminRepository.GetAllCoreValues(); 
    return View(model); 
} 

這怎麼我的看法是這樣的:

@Html.ListBoxFor(m => m.SelectedValues, new MultiSelectList(Model.CoreValues, "Id", "Name")) 

怎麼辦我編寫我的POST動作,以便SelectedValues將用於包含在帖子上選定的值?

的IEnumerable之前,我曾串宣佈CoreValueName在我的ViewModel和我做了這樣的事情在這完美的工作,但現在我把它改成了IEnumerable我的職務行爲,我已經不知道如何編寫代碼,所以我的selectedvalues將使用在我的文章中包含選定的值。

Question question = new Question(); 
var CoreValueID = int.parse(model.CoreValueName); 
var GetAllCoreValuesID = AdminRep.GetByCoreValueID(CoreValueID);    
question.CoreValue.Add(GetAllCoreValuesID); 
AdminRepository.AddQuestion(question); 
AdminRepository.save(); 

這是我的POST操作的版本完美的作品怎麼一回事,因爲model.SubjectType被聲明爲字符串在我的視圖模型:

[HttpPost] 
     public ActionResult Create(AdminCreateViewModel model) 
     { 

       Question question = new Question();  
       var SubjectTypeID = int.Parse(model.SubjecTypeName); 
       var GetAllSubjecTypesID = AdminRep.GetBySubjectTypeID(SubjectTypeID); 
       question.SubjectType.Add(GetAllSubjecTypesID); 
       AdminRep.AddQuestion(question); 
       AdminRep.save(); 
     } 

這是我的後作用的版本不工作怎麼一回事,因爲Model.Selectedvalues聲明作爲我ViewModel中的Ienumerable字符串。我試圖int.parse我的model.SelectedValues但這不適用於Ienumerable。和GetByCoreValueID方法採用int作爲參數,所以我不知道如何做到這一點。我需要foreach嗎?

[HttpPost] 
public ActionResult Create(AdminCreateViewModel model) 
{ 
    Question question = new Question(); 
    var CoreValueID = model.SelectedValues; 
    var GetAllCoreValuesID = AdminRep.GetByCoreValueID(CoreValueID); // 
    question.CoreValue.Add(GetAllCoreValuesID); 
    AdminRep.AddQuestion(question); 
    AdminRep.save(); 

在此先感謝!

回答

0

您可以讓您的POST控制器操作將視圖模型作爲參數。然後SelectedValues屬性將包含用戶選擇的值列表:

[HttpPost] 
public ActionResult Index(CreateViewModel model) 
{ 
    model.SelectedValues will cnotain the selected values from the user here 
    ... 
} 
+0

哦是的我有我的ViewModel作爲我的POST操作中的參數。但是它的「model.SelectedValues將會從用戶那裏獲得選定的值」。自從它的Ienumerable:/ – Obsivus 2012-03-13 10:57:27

+0

@RammtinAvar出現問題以後,你有什麼問題?你想達到什麼目的?我以爲你問的是如何在POST操作中取回選定的值。 – 2012-03-13 11:01:23

+0

我試圖實現的是一旦用戶從我的列表框中選擇多個值我想將這些值添加到我的數據庫中,然後纔可以添加一個值,但現在應該可以添加多個我聲明一個Ienumerable selectedvalues在我的viewmodel中,通過我的數據庫中的所有靜態核心值填充GET操作。我不知道如何在POST操作中實現這一點。 – Obsivus 2012-03-13 11:12:05

相關問題