PDA

View Full Version : چک کردن چک باکس در کنترلر



shadii
یک شنبه 21 مهر 1392, 21:29 عصر
سلام من می خوام به صورت دستی یه چک باکس بزارم تو ویو ، و در کنترلر چک کنم که آیا تیک خورده یا نه بدون استفاده از مدل چه جوری این کار ور بکنم؟

Cybersilent
دوشنبه 22 مهر 1392, 11:05 صبح
bool isReplace = Request.Form["Replaced"] != "false";


فقط دقت کنید که id چک باکس در view و controller برابر باشند.

Cybersilent
دوشنبه 22 مهر 1392, 11:13 صبح
فقط هنگام استفاده از این روش (یعنی Request.Form) دقت داشته باشید که کاربر می تونه هر داده ای رو با استفاده از ابزارهایی مثل فایرباگ سمت سرور بفرسته.
مثلا اگر شما چک باکس رو غیر فعال کنید تا کاربر نتونه چک اون رو بزنه ، به این معنی نیست که در این حالت قطعا false سمت سرور ارسال میشه، یعنی کاربر می تونه با Firebug اون چک باکس رو از غیر فعال به فعال تبدیل کنه و بعد چک اون رو بزنه و برا سرور ارسال کنه.

shadii
دوشنبه 22 مهر 1392, 21:40 عصر
خوب این دریافتش در کنترلره! تو view چه جوری بفرستمش آخه هر کدی میزنم نمی فرسته و null میده

Cybersilent
سه شنبه 23 مهر 1392, 09:50 صبح
آها...
خب باید اون رو در بین این دستور قرار بدید تا به سمت کنترل ارسال شود.

@using(Html.BeginForm(
"Create",
"Account"
))
{

}

shadii
چهارشنبه 24 مهر 1392, 16:37 عصر
گرفتی ما رو؟ این نال بر می گردونه الان از چه روشی داری پاس می دی؟؟

shadii
چهارشنبه 24 مهر 1392, 16:48 عصر
جواب اینه:
public ActionResult Create( bool CheckBox)
{

bool isReplace = CheckBox;
@using (Html.BeginForm("Create",
"Pages", FormMethod.Post))
{


<input id="checkbox" name="checkbox" type="checkbox" value="true" />
<input name="checkbox" type="hidden" value="false" />