Форум программистов, компьютерный форум, киберфорум
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 1
Регистрация: 27.09.2013
Сообщений: 91
1

Как передать значение из строго типизированного представления в js файл

26.05.2016, 01:22. Показов 1633. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер. форумчане.
Вопрос следующий.
Создана модель со строковой переменной.
C#
1
2
3
4
5
6
7
8
9
10
11
12
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
 
namespace WebApplication6.Models
{
    public class Model_st
    {
        public string test { get; set; }
    }
}
В контроллере переменной test присвоено значение и модель передана в типизированное представление

C#
1
2
3
4
5
      public ActionResult Index(Model_st md)
        {
            md.test = "Проверка";
            return View(md);
        }
В представлении переменная передается через "Model.test":

HTML5
1
<div>@Model.test</div>
В JavaScript значение передается следующим образом:

Javascript
1
var jstest = '@Model.test';
Но таким образом можно передать только в том случае, если код JS встроен в HTML разметку.
Вопрос.
Как передать значение модели '@Model.test' в отдельный файл JS, где полученное значение должно быть использовано.

Файл JS я подключил через BundleConfig.cs:

C#
1
2
 bundles.Add(new ScriptBundle("~/test").Include(
                        "~/Scripts/start.js"));
В шаблоне _Layout.cshtml прописал подключение к файлу:

@Scripts.Render("~/test")

Как передать переменную модели в используемый файл start.js?

Помогите, пожалуйста!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.05.2016, 01:22
Ответы с готовыми решениями:

Передать decimal значение из представления
Есть Модель public class CalcData { public decimal PaymentCash { get; set; } ...

Каскадное удаление из строго типизированного DataSet
Добрый день. В БД есть две таблицы связанные внешним ключем и каскадным удалением. Так вот если с...

Добавление расчётного столбца в таблицу строго-типизированного dataset
Всем доброго времени суток! У меня есть 2 таблицы в строго-типизированном датасете ShopDB....

Как передать значение сессии в другой файл PHP?
Добрый день! Есть две формы одна с полями в вода а другая с кнопками, каждую форму обрабатывает...

5
19 / 19 / 6
Регистрация: 09.12.2010
Сообщений: 140
26.05.2016, 08:14 2
Aleksey_FL, в представлении создаешь скрытый input:
C#
1
@Html.HiddenFor(model => model.test)
и в javascript файле ссылаешься на него:
Javascript
1
var jstest = $("#test").val();
0
3458 / 2470 / 695
Регистрация: 02.08.2011
Сообщений: 6,693
26.05.2016, 19:13 3
Цитата Сообщение от Aleksey_FL Посмотреть сообщение
var jstest = '@Model.test';
Ну так используйте эту переменную как буфер. Такие переменные являются свойствами глобального объекта - window - в клиентском js. При условии, что внешний скрипт будет работать с тем же объектом window, вы сможете получить его через window.jstest
0
653 / 589 / 171
Регистрация: 17.07.2012
Сообщений: 1,670
Записей в блоге: 1
27.05.2016, 16:05 4
По моему, best practices, это всё таки в data-атрибуты элементов пихать. Не?
0
0 / 0 / 1
Регистрация: 27.09.2013
Сообщений: 91
29.05.2016, 22:48  [ТС] 5
Огромное спасибо за подсказки!!!

У меня уточняющий вопрос по window. Как я понял его можно использовать следующим образом:

Javascript
1
var jstest = '@Model.test';
а в JS-файле значение jstest я могу получить через
Javascript
1
var jstest2 = window.jstest
Я правильно понял?


И еще вопрос. Что за зверь data-атрибуты и в чем их преимущество?
Заранее спасибо!!!
0
Фрилансер
735 / 352 / 96
Регистрация: 05.05.2014
Сообщений: 2,621
01.06.2016, 08:04 6
Цитата Сообщение от Aleksey_FL Посмотреть сообщение
Что за зверь data-атрибуты и в чем их преимущество?
пользовательские данные. например <div id="block1" data-specialmode="@Model.test"></div>
означает, что блок имеет состояние "проверка". вообщем придумано, чтобы официально можно было пихать в элементы все что угодно для удобного использования этих элементов в js.
0
01.06.2016, 08:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.06.2016, 08:04
Помогаю со студенческими работами здесь

Как передать данные с представления в контроллер?
Всем доброго времени суток ;) Подскажите, пожалуйста, какой код нужно написать внутри тега...

Как передать Exception из бизнес логики на уровень представления?
Как правильно передать ошибку (ексепшн) из бизнес логики в интерфейс. Сейчас все просто пишется в...

Как передать данные с представления на контроллер при нажатии на кнопку?
Я только неделю назад решил и у меня проблемка. Помогите розобраться как передать даные с...

mvvm : как в модель представления передать имя колонки DataGrid?
Уважаемые Гуру! Есть userControl на котором DataGrid. В модели представления делаю фильтр данных....


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru