Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
odmitrys
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 20
1

Как передать параметры из одного View в EditorFor другого View

13.09.2013, 20:02. Просмотров 2603. Ответов 8
Метки нет (Все метки)

Здравствуйте. Есть 2 view, первое просто отображает данные, 2 должно их редактировать, в 1 view есть текст, необходимо передать этот текст в Html.EditorFor второго вью. Как это сделать через js, пожалуйста приведите пример кода, где реализованно подобное?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2013, 20:02
Ответы с готовыми решениями:

Можно ли передать несколько View во View
Вопрос новичка можно ли передать несколько View во View ? Дело в том что мне нужно передать...

Передать модель из одного view в другой
Суть задачи вот в чем: пишу мини-блог, загвоздка получилась в отображении самого текста - хочу...

Как в View передать List<>
Есть модель: public class Meny_dataModel { public string title { get; set; } ...

Как передать данные во View?
Здравствуйте! Начал изучать ASP.NET, и столкнулся с такой проблемой: как передать данные во View?...

Как прочитать параметры из обычного txt-шника и вывести на View
Господа, встал в ступор: как прочитать параметры из обычного txt-шника и вывести на View? ...

8
antesoft
106 / 18 / 4
Регистрация: 08.06.2013
Сообщений: 62
13.09.2013, 21:02 2
odmitrys, из одного view посылаете данные методу контроллера, в этом методе делаете какую-нибудь обработку и затем из этого метода передаете в другое view. js необязательно использовать
0
y-fox
518 / 510 / 68
Регистрация: 19.09.2011
Сообщений: 826
13.09.2013, 21:40 3
Вопрос вообще очень смутно звучит, и не понятно, зачем такое нужно
Самый простой пример:

C#
1
2
3
4
5
6
7
8
9
10
public ActionResult Calc()
{
    return View();
}
 
[HttpPost]
public Action Calc(int num1, int num2)
{
    return View(new MyModel{ Num1 = num1, Num2 = num2, Result = num1+num2});
}
Представление для них:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@model MyModel
 
@if(Result.HasValue)
{
    @Model.Num1 + @Model.Num2 = @Model.Result<br/>
    @Html.ActionLink("Повторить", "MyAction", "MyController")
}
else
{
  using(Html.BeginForm())
  {
     @Html.TextBoxFor(x=>x.Num1)<br/>
     @Html.TextBoxFor(x=>x.Num2)<br/>
     <input type='submit' value='Calc!'/>
  }
}
0
odmitrys
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 20
13.09.2013, 21:49  [ТС] 4
Цитата Сообщение от y-fox Посмотреть сообщение
Вопрос вообще очень смутно звучит, и не понятно, зачем такое нужно
Самый простой пример:

C#
1
2
3
4
5
6
7
8
9
10
public ActionResult Calc()
{
    return View();
}
 
[HttpPost]
public Action Calc(int num1, int num2)
{
    return View(new MyModel{ Num1 = num1, Num2 = num2, Result = num1+num2});
}
Представление для них:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@model MyModel
 
@if(Result.HasValue)
{
    @Model.Num1 + @Model.Num2 = @Model.Result<br/>
    @Html.ActionLink("Повторить", "MyAction", "MyController")
}
else
{
  using(Html.BeginForm())
  {
     @Html.TextBoxFor(x=>x.Num1)<br/>
     @Html.TextBoxFor(x=>x.Num2)<br/>
     <input type='submit' value='Calc!'/>
  }
}
Это как я понимаю в случае одного представления и контроллера.
А если мне необходимо передавать данные из одного контроллера в другой, то какой тогда код должен быть?

Есть контроллер и представление выводящее текст, есть контроллер и представление формы, необходимо контроллеру и представлению формы передать текст, который выводится, а при нажатии на кнопку изменить, изменить текст который выводится в 1 представлении на тот текст что введен в TextBox в представлении формы. как это сделать?
0
13.09.2013, 21:49
винс
42 / 42 / 11
Регистрация: 16.03.2012
Сообщений: 199
13.09.2013, 22:36 5
На вашем месте я бы делал через popup/ Только немного изменить форму и добавить логику.
Я понимаю что это не решение вашей задачи, но как предложение сойдет
0
odmitrys
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 20
13.09.2013, 22:43  [ТС] 6
Цитата Сообщение от винс Посмотреть сообщение
На вашем месте я бы делал через popup/ Только немного изменить форму и добавить логику.
Я понимаю что это не решение вашей задачи, но как предложение сойдет
Да не решение хотя отчасти у меня popup
0
Сергей 83
98 / 96 / 15
Регистрация: 28.03.2011
Сообщений: 565
16.09.2013, 13:55 7
Цитата Сообщение от odmitrys Посмотреть сообщение
Есть 2 view, первое просто отображает данные, 2 должно их редактировать, в 1 view есть текст, необходимо передать этот текст в Html.EditorFor второго вью. Как это сделать через js,
Нажимаем кнопку "Редактировать", считываем текст с разметки, посылаем его аяксом на метод в контроллере, создаем модель с этим текстом (т.к. у нас Html.EditorFor ), посылаем партиал вью с этой моделью в саксцесс нашего аякса, вставляем в попап, и отображаем его.
0
odmitrys
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 20
16.09.2013, 19:28  [ТС] 8
Цитата Сообщение от Сергей 83 Посмотреть сообщение
Нажимаем кнопку "Редактировать", считываем текст с разметки, посылаем его аяксом на метод в контроллере, создаем модель с этим текстом (т.к. у нас Html.EditorFor ), посылаем партиал вью с этой моделью в саксцесс нашего аякса, вставляем в попап, и отображаем его.
А можете показать, написать код как сделать, то что вы описали, потому что у меня не такой большой опыт в аяксе и mvc?
0
krainov22
4 / 4 / 1
Регистрация: 21.09.2013
Сообщений: 20
21.09.2013, 22:35 9
На вашем месте, я бы не стал усложнять методы передачи данных от одного представления на другое, все что нужно, это передать на клике Id вашей записи и вызвать соответствующий ActionResult с нужно формой в которую перезалить ваши данные по этому Id.

C#
1
2
3
4
5
6
7
8
9
10
11
12
public class RecordController : Controller
 
 
public ActionResult Edit(int id)
{
     var record = Service.Get(id);
     var model = record.ProjectAsModel(); //метод маппинга сущности в модель
     
     return View(model);
}
 
}
А в разметке:
Html.ActionLink("Редактировать", "Edit", new { id = x.Id }) // Вставляем Id записи из модели

Как-то так...

Добавлено через 41 минуту
Либо, еще один вариант (для поп апа)!
В первом окне размещаете
<input type="submit" id="btnAddNewPlan" name="btnAddNewPlan" value="Передать в попап" onclick="javascript:OpenWindow('@(Url.Action("Метод", "Контроллер", new { recordId = Model.Id }))', 800, 700, true); return false;" class="t-button" />

А в методе, извлекаете нужную запись, генерите нужную модель и отображаете в представлении (поп апе).

Ну и не забыть про:
HTML5
1
2
3
4
5
6
7
8
9
10
<script>
function OpenWindow(query, w, h, scroll) {
    var l = (screen.width - w) / 2;
    var t = (screen.height - h) / 2;
 
    winprops = 'resizable=0, height=' + h + ',width=' + w + ',top=' + t + ',left=' + l + 'w';
    if (scroll) winprops += ',scrollbars=1';
    var f = window.open(query, "_blank", winprops);
}
</script>
0
21.09.2013, 22:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2013, 22:35

Как через view Listbox передать параметр хранимой процедуре?
Не могу никак сообразить как передать параметр хранимой процедуре через listbox. Суть такая, что в...

Передать dynamic во View
Случилось горе на мою голову... Мне надо передать динамик тип во Вью, но я не знаю как, помогите...

Передать данные из View в Controller
Например есть некоторое View. @{ ViewBag.Title = &quot;Index&quot;; } &lt;h2&gt;Index&lt;/h2&gt; &lt;script...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru