Добрый день!
@manisha вынужден сделать 2 замечания:
1. В методе
CreateFeedBack есть
входной параметр по имени
note - это значит, что метод
должен принимать какое-то значение для этого параметра. Если он не будет принимать никакого значения, то переменная получит значение по-умолчанию. Т.к. у Вас переменная
note является
string, то по-умолчанию в нее запишется null.
URL Вы формируете следующим образом:
ajaxURL: '@Url.Action("CreateFeedBack", "Email")',
В итоге у Вас в переменную
ajaxURL запишется значение '/Email/CreateFeedBack', но
без параметра запроса "
note", поэтому на сервер в метод действия CreateFeedBack в переменную
note запишется
null.
Чтобы правильно передать переменную в метод запроса, у метода Url.Action есть перегруженный метод, принимающий объект с параметрами запроса:
Url.Action("CreateFeedBack", "Email", new { note = "my some note" })
Если Вы будете использовать его, то тогда код:
ajaxURL: '@Url.Action("CreateFeedBack", "Email", new { note = "my some note" })',
в переменную
ajaxURL уже запишет значение '/Email/CreateFeedBack?note=my+some+note' (или как-то так), и при отправке запроса на этот URL в метод действия CreateFeedBack в переменную
note запишется Ваша строка: "my some note".
2. Как правильно сказал
@MIsternik,
ViewBag используется при формировании страницы на сервер
, т.е. сие означает следующее:
ViewBag формируется в случае, когда у Вас запрос приходит в метод действия, этот метод действия
что-то выполняет и
возвращает конкретное представление, например так:
public ActionResult Index()
{
// здесь что-то явно происходит...
ViewBag.SomeVar = "some value";
return View(); // <--- явно возвращает конкретное представление
}
При этом в самом представлении:
@{
Layout = null;
}
<h2>Index</h2>
@ViewBag.SomeVar
во ViewBag будет свойство SomeVar со значением "some value".
У Вас же метод действия
ничего не возвращает, поэтому представления он
не сформирует.
Вам нужно сделать так:
public ActionResult CreateFeedBack(string note)
{
ViewBag.Note = note;
return View();
}
В таком случае значение из входящего параметра запроса запишется в переменную
note, которая запишется в свойство Note динамического объекта ViewBag, сформирует представление, в котором будет использоваться ViewBag.Note, и вернет ответ клиенту. В ответе придет обычный html-код.
Важно!
Учтите, что т.к. Вы используете ajax-запрос к методу действия, то этот метод действия должен возвращать
частичное представление - т.е. такое представление, у которого
Layout = null;, иначе в ответ на ajax-запрос Вам придет
полный html-код вместе c DOCTYPE, тегами html, head, body и другими. Если Вы
явно укажете
Layout = null;, то в ответе получите
только код из представления и ничего больше (никаких слоев/мастер-страниц).
Как говорится, найдите время и учите матчасть - прочтите книги по ASP.NET MVC, потому что поставленный вопрос относится к разряду вопросов основ ASP.NET MVC, его фундамента. Поверьте, при прочтении хотя бы 1 книги от корки до корки у Вас снимется масса вопросов, а в голове сформируется полная картина того, как правильно работать с ASP.NET MVC.
Надеюсь, я Вам немного помог.
Успехов!