2014-01-22 3 views
0

У меня есть простой вопрос, и я надеюсь, что кто-нибудь из вас сможет мне помочь. Мой вопрос заключается в следующем:Как вставить этот код C# в HTML?

Я определил некоторые свойства для запуска некоторых видео в проигрывателе HTML5 [имени Flowplayer], и свойства, которые я использую являются:

public string VideoSource; //it values are the source path of the video files 
public string videoformat; //it values are e.g. video/webm and video/mp4 
public int width; // The width of the player 
public int height; // The height of the player 

а) Теперь здесь код, который мне очень нужна ваша помощь в:

string.Format("<div style=\"width:{0}px;height:{1}px\" id='video1' class='flowplayer' data-swf='flowplayer.swf' data-ratio='0.4167'><video><source type='videoformat:{0}' src='VideoSource:{0}'/></video></div>", videoformat, width, height); 

Ну, приведенный выше код не работает. Я уверен, что вышеупомянутый текст в коде неправильный (особенно все внутри <video>...</video>), и его нужно исправлять. Итак, не могли бы вы мне помочь?

б) Вот еще один способ, которым я имел обыкновение использовать:

string.Format("<div style=\"width:{0}px;height:{1}px\" id='video1' class='flowplayer' data-swf='flowplayer.swf' data-ratio='0.4167'><video><source type='video/webm' src='http://myepiserversite/Global/WebmFileSample.webm' /></video></div>", videoformat, width, height); 

Этот второй код способ отлично работает, но это совершенно нецелесообразно, так как он работает только с 1 одноместной видеоформате (видео/webm) и 1 одиночный видеофайл (Hardcoded). Я действительно хочу, чтобы он был более гибким и мог принимать значения как videoformat, так и videoource из переменных.

Итак, моя цель - решить проблему (a) и правильно вставить код C# в теги HTML.

Большое спасибо!

+1

Вы пытаетесь сгенерировать HTML-версию из консольного приложения? Если это ASP.Net WebFroms/MVC, есть лучшие способы вывода тегов из кода ... –

ответ

2

Вот ваш оригинальный фрагмент 1:

string.Format("<div style=\"width:{0}px;height:{1}px\" id='video1' class='flowplayer' data-swf='flowplayer.swf' data-ratio='0.4167'><video><source type='videoformat:{0}' src='VideoSource:{0}'/></video></div>", videoformat, width, height); 

Вот ваш сниппет 1 переформатировать, чтобы сделать его доступным для чтения:

string.Format(
@"<div style=""width:{0}px;height:{1}px"" id='video1' class='flowplayer' data-swf='flowplayer.swf' data-ratio='0.4167'> 
    <video> 
     <source type='videoformat:{0}' src='VideoSource:{0}'/> 
    </video></div>", 
    videoformat, width, height); 

Это делает ошибку более очевидной: вы ссылки аргумент 0 больше, чем один раз и использовать только три значения, которые вам нужны. Вместо этого:

string.Format(
@"<div style=""width:{0}px;height:{1}px"" id='video1' class='flowplayer' data-swf='flowplayer.swf' data-ratio='0.4167'> 
    <video> 
     <source type='videoformat:{2}' src='VideoSource:{3}'/> 
    </video></div>", 
    width, height, videoformat, VideoSource); 

Кроме того, не забудьте присвоить результат где-нибудь. Наконец, чтобы сконденсировать его обратно в соответствии с оригиналом:

string result = string.Format("<div style=\"width:{0}px;height:{1}px\" id='video1' class='flowplayer' data-swf='flowplayer.swf' data-ratio='0.4167'><video><source type='videoformat:{2}' src='VideoSource:{3}'/></video></div>", width, height, videoformat, VideoSource); 
+0

Большое спасибо Джоэлю за ваш быстрый ответ. – Alex

+0

Спасибо, Джоэл.Ваш код должен работать так, как это логично, но плеер показывает сообщение об ошибке неподдерживаемого формата (хотя это НЕ проблема формата, потому что тот же самый файл работает, когда я передаю его как жестко запрограммированный). Параметр формата видео заполняется в текстовое поле как: video/webm => это значение должно быть заполнено внутри videoformat: {2} - Является ли ошибка, потому что значение равно 2 словам и разделено косой чертой? Кроме того, ширина правильная, поскольку она заполняется текстовым файлом, но значение высоты становится SO BIG, оно должно составлять 300 пикселей, но в качестве результата это стало 33554431 px ... Что вы думаете об этих двух проблемах? – Alex

+0

Привет, Joel, 2 вопроса, о которых я сообщал, были моей ошибкой (дополнительные необработанные параметры). Теперь я получил его для правильной работы на основе вашего кода. Спасибо огромное ! – Alex

0

Это работает для вас?

string.Format("<div style=\"width:{0}px;height:{1}px\" id='video1' class='flowplayer' data-swf='flowplayer.swf' data-ratio='0.4167'>**<video><source type='videoformat:{2}' src='VideoSource:{3}'/></video>**</div>", width, height, videoFormat, VideoSource); 

Я только что обновил вашу строку с помощью маркеров замещения 0-3 и затем сопоставил аргументы.

+0

Спасибо, Питер. Я проверил ваш код, и у меня возникают те же две проблемы, что и я, прокомментировал ответ Джоэла. Пожалуйста, у вас есть решение для этих 2 вопросов? – Alex

+0

Привет, Питер. 2 вопроса, о которых я сообщал, были моей ошибкой (дополнительные необработанные параметры). Теперь я получил его, чтобы он работал правильно. Большое вам спасибо, я очень ценю ваши материалы! – Alex

Смежные вопросы