ورود

View Full Version : سوال: مشکل در ارسال پارامتر از controller به view



alef.divar
شنبه 10 اسفند 1392, 21:31 عصر
سلام
من یه فرم ایجاد کردم که نظرات کاربر ها رو میگیره و میخوام وقتی کاربر کلید ثبت نظر رو زد زیر دکمه نوشته بشه "نظر شما با موفقیت ثبت شد".
اما این کد اجرا نمیشه!
مشکل چیه؟
کد مربوط به view:

@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset dir="rtl">
<legend>نظر شما</legend>
<div class="editor-label">
@Html.LabelFor(model => model.title)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.title)
@Html.ValidationMessageFor(model => model.title)
</div>

<div class="editor-label">
@Html.LabelFor(model => model.context)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.context)
@Html.ValidationMessageFor(model => model.context)
</div>

<p>
<input type="submit" value="ثبت" />
</p>
<p>
@if (true)
{
<span>@ViewBag.textPoll</span>
}
</p>
</fieldset>
}



کد مربوط به controller:

[HttpPost]
public ActionResult Create(poll poll)
{
ViewBag.textPoll = "نظر شمت با موفقیت ثبت شد.";
if (ModelState.IsValid)
{
db.polls.Add(poll);
db.SaveChanges();
return RedirectToAction("Create");
}
return View("Create");
}




متن مورد نظر بعد از post شدن نشون داده نمیشه؟!!!!!
PLZ F1

Amir Oveisi
شنبه 10 اسفند 1392, 21:54 عصر
چون دارید بعد از ثبت شدن نظر Redirect میکنید به یک اکشن دیگه و این باعث میشه که مقدار ViewBag پاک بشه. به جای Return RedirectToAction باید Return View کنید.

alef.divar
شنبه 10 اسفند 1392, 22:10 عصر
درست شد، ممنون.
فقط اگه بخوام فرم رو پاک کنم باید چیکار کنم(منظورم اینه که بعد از ارسال اطلاعات و نمایش متن اطلاعات داخل فرم پاک بشه)

Amir Oveisi
شنبه 10 اسفند 1392, 22:18 عصر
کافیه یک مدل جدید new کنید و اون رو به عنوان پارامتر به View ارسال کنید.

alef.divar
یک شنبه 11 اسفند 1392, 08:00 صبح
من به این صورت یک مدل new کردم و به view فرستادم اما فرم پاک میشه:



if (ModelState.IsValid)
{
ViewBag.MessPoll="نظر شما با موفقیت ثبت شد.";
db.polls.Add(poll);
db.SaveChanges();
poll p = new Models.poll();
p.title = "";
p.context = "";
return View(p);
}


اشتباهم کجاست؟

Amir Oveisi
دوشنبه 12 اسفند 1392, 18:27 عصر
کد کامل View مربوط رو بزارید

alef.divar
سه شنبه 13 اسفند 1392, 09:13 صبح
کد کامل View مربوط رو بزارید
این کد بخش view :


@model ShailyMVC.Models.poll

@{
ViewBag.Title = "نظر شما";
}

<h2>نظر شما</h2>

@using (Html.BeginForm()) {
@Html.ValidationSummary(true)

<fieldset dir="rtl">
<legend>نظر شما</legend>

<div class="editor-label">
@Html.LabelFor(model => model.title)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.title)
@Html.ValidationMessageFor(model => model.title)
</div>

<div class="editor-label">
@Html.LabelFor(model => model.context)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.context)
@Html.ValidationMessageFor(model => model.context)
</div>

<p>
<input type="submit" value="ثبت" />
</p>
<p>
@if (IsPost)
{
<span>@ViewBag.MessPoll</span>
}
</p>
</fieldset>
}

<div>
<!-- @Html.ActionLink("بازگشت به لیست", "Index") -->
</div>

@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}

alef.divar
چهارشنبه 14 اسفند 1392, 13:05 عصر
کسی میتونه یه راهنمایی کنه؟
ممنون میشم اگه اینکارو بکنید؟