2016-12-12 2 views
-1

У меня есть модель, которые используют по EntityFrameworkMVC, Ajax и массивы

public class Goal 
{ 
    public int ID { get; set; } 
    public string GoalName { get; set; } 
    public int GoalTarget { get; set; }   
} 

Мой Jscript код

var GoalName = $('input[name="GoalName[]"]').serialize(); 
    var GoalId= $('input[name="GoalId[]"]').serialize(); 
    alert(GoalName); 
    $.post('/Home/UpdateGoals', { GoalName: GoalName, GoalId: GoalId}, function (data) { 
    }); 

Вопрос - как правильно принимать данные от клиента к контроллеру? Используйте форму ['paramname'] и затем сохраните db или используйте специальный созданный ViewModel для получения данных и следующего сохранения db?

Например, я должен создать новый видовую

class GoalView 
{ 
    public string[] GoalName { get; set; } 
    public string[] GoalId { get; set; } 
} 

и теперь я могу контроллер Foreach данные из этой модели и сохранить БД?

public ActionResult UpdateGoals(GoalView goalview) 
    { 

      how I can save data from goalview to db.Goals (which using Goal model) ?? 
     return Content(); 
    } 

Не могли бы вы посоветовать, как это сделать правильно и привести несколько примеров?

+1

мутноватый, что вы пытаетесь сделать здесь. Вы просматриваете генерирующие входы для нескольких «целей»? –

+0

У меня есть HTML-форма с динамическими полями ввода (пользователь может удалить и добавить). Мне нужно передать эти данные через запрос AJAX контроллеру и внести изменения в БД. Вопрос в том, как я могу вносить изменения в db (просто просьба привести простой пример), и нормально ли использовать его, как было описано выше, я имею в виду, что возможное что-то неверно и должно быть выполнено другим способом? – Fullbalanced

+0

Что вы делаете, это не правильный подход. Сгенерируйте корректный просмотр, чтобы он привязывался к 'List ' - обратитесь [этот ответ] (http://stackoverflow.com/questions/28019793/submit-same-partial-view-called-multiple-times-data-to-controller/28081308 # 28081308) для опций –

ответ

0
var filter={ 
GoalName : $('input[name="GoalName[]"]').serialize(); 
GoalId=: $('input[name="GoalId[]"]').serialize(); 
} 



$.post('/Home/UpdateGoals', $.param(filter), function (data) { 
    }); 

исх: http://api.jquery.com/jquery.param/

+0

нормально, с этим не проблема, как я могу обновить свой db db.Goal? – Fullbalanced