مرجع تخصصی برنامه نویسان

بزرگترین انجمن برنامه نویسان فارسی زبان

عکس پروفایل در mvc

جمعه, 29 دی 1396 00:38

عکس پروفایل در mvc

سلام  برای ذخیره عکس پروفایل ، من با استفاده از این آموزش رفتم ولی به Get<ApplicationDbContext>() از برنامه  ارور میده و نمیزاره بیلد کنم پروژه رو 
https://barnamenevisan.org/Articles/Article5093.html

 var bdUsers = HttpContext.GetOwinContext().Get<ApplicationDbContext>();
 public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public ApplicationDbContext()
            : base("DefaultConnection", throwIfV1Schema: false)
        {
        }

        static ApplicationDbContext()
        {
            // Set the database intializer which is run once during application start
            // This seeds the database with admin user credentials and admin role
            Database.SetInitializer<ApplicationDbContext>(new ApplicationDbInitializer());
        }

        public static ApplicationDbContext Create()
        {
            return new ApplicationDbContext();
        }
    }

جمعه, 29 دی 1396 08:33

لطفا متن خطا را قرار بدید.

جمعه, 29 دی 1396 11:06

CS7036 C# There is no argument given that corresponds to the required formal parameter 'key' of 'IOwinContext.Get<T>(string)'

جمعه, 29 دی 1396 11:27

بسته زیر را نصب کنید: 

Microsoft.AspNet.Identity.Owin

جمعه, 29 دی 1396 11:40

نصب هست در پروژه 

جمعه, 29 دی 1396 12:05

پروژه رو دانلود و تست کردم خطایی مشاهده نشد. 

محتوای فایل packge.config را قرار داده و همچنین بگویید نسخه vs شما چیست ؟

جمعه, 29 دی 1396 12:18

VS 2015
بله پروژه مشکل ندارد ولی کد که در پروژه هست در پروژه من خطا میگیره 
البته در همون پروژه این قسمت در identity.models تفاوت داره و   static ApplicationDbContext() خالی هست ولی در پروژه خودم به صورت زیر هست : 

static ApplicationDbContext()
       {
           // Set the database intializer which is run once during application start
           // This seeds the database with admin user credentials and admin role
           Database.SetInitializer<ApplicationDbContext>(new ApplicationDbInitializer());
       }

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Antlr" version="3.4.1.9004" targetFramework="net452" />
  <package id="bootstrap" version="3.3.7" targetFramework="net452" />
  <package id="EntityFramework" version="6.1.3" targetFramework="net452" />
  <package id="jQuery" version="1.10.2" targetFramework="net452" />
  <package id="jQuery.Validation" version="1.11.1" targetFramework="net452" />
  <package id="Microsoft.AspNet.Identity.Core" version="2.2.1" targetFramework="net452" />
  <package id="Microsoft.AspNet.Identity.EntityFramework" version="2.1.0-alpha1" targetFramework="net452" />
  <package id="Microsoft.AspNet.Identity.Owin" version="2.2.1" targetFramework="net452" />
  <package id="Microsoft.AspNet.Identity.Samples" version="2.1.0-alpha1" targetFramework="net452" />
  <package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net452" />
  <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.0" targetFramework="net452" />
  <package id="Microsoft.jQuery.Unobtrusive.Ajax" version="3.2.3" targetFramework="net452" />
  <package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.2.3" targetFramework="net452" />
  <package id="Microsoft.Net.Compilers" version="1.0.0" targetFramework="net452" developmentDependency="true" />
  <package id="Microsoft.Owin" version="2.1.0" targetFramework="net452" />
  <package id="Microsoft.Owin.Host.SystemWeb" version="2.1.0" targetFramework="net452" />
  <package id="Microsoft.Owin.Security" version="2.1.0" targetFramework="net452" />
  <package id="Microsoft.Owin.Security.Cookies" version="2.1.0" targetFramework="net452" />
  <package id="Microsoft.Owin.Security.Facebook" version="2.1.0" targetFramework="net452" />
  <package id="Microsoft.Owin.Security.Google" version="2.1.0" targetFramework="net452" />
  <package id="Microsoft.Owin.Security.MicrosoftAccount" version="2.1.0" targetFramework="net452" />
  <package id="Microsoft.Owin.Security.OAuth" version="2.1.0" targetFramework="net452" />
  <package id="Microsoft.Owin.Security.Twitter" version="2.1.0" targetFramework="net452" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net452" />
  <package id="Modernizr" version="2.6.2" targetFramework="net452" />
  <package id="Newtonsoft.Json" version="5.0.6" targetFramework="net452" />
  <package id="Owin" version="1.0" targetFramework="net452" />
  <package id="Respond" version="1.2.0" targetFramework="net452" />
  <package id="SweetAlert" version="1.0.0" targetFramework="net452" />
  <package id="WebGrease" version="1.5.2" targetFramework="net452" />
</packages>

جمعه, 29 دی 1396 13:23

بسته ها nuget پروژتون رو بروزرسانی کنید

جمعه, 29 دی 1396 18:57

همه package هارو بروزرسانی کردم ولی باز خطا میده 
راهی دیگه نداره ؟

جمعه, 29 دی 1396 19:09

متد Get و GetOwinContext در IntelliSense قابل مشاهده می باشد ؟

جمعه, 29 دی 1396 19:34

ممنون درست شد 
یه سوال خط زیر دربرنامه چه چیزی رو چک میکند در UserPhotos ?
چون عکس رو که آپلود میکنم بعد وارد این قسمت که میشه وارد if نمیشه و null رو به جای عکس ثبت میکنه . if چه چیزی رو چک میکنه ؟

 

 if (Request.Files.Count > 0)
                {
                    HttpPostedFileBase poImgFile = Request.Files["UserPhoto"];

                    using (var binary = new BinaryReader(poImgFile.InputStream))
                    {
                        imageData = binary.ReadBytes(poImgFile.ContentLength);
                    }
                }

جمعه, 29 دی 1396 19:37

چگونه مشکل شما حل شد لطفا مطرح کنید.

کدی که قرار دادید ابتدا چک می کند که آیا فایلی به action ارسال شده است یا خیر برای همین تعداد فایل های ارسالی چک کرده اگر بزرگ تر 0 بود بقیه کار هارو انجام می دهد.

جمعه, 29 دی 1396 19:44

package که آپدیت کردم بعد گفتم شاید مشکل namespace هست Ctrl + . که زدم name space رو اضافه نکرد خودم  using Microsoft.AspNet.Identity.Owin;  رو بالا اضافه کردم حل شد.ممنون
مقدار null کلا میفرسته برا کنترلر .

@using (Html.BeginForm("Register", "Account", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
    @Html.AntiForgeryToken()
    <h4>Create a new account.</h4>
    <hr />
    @Html.ValidationSummary("", new { @class = "text-danger" })
    <div class="form-group">
        @Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" })
        <div class="col-md-10">
            @Html.TextBoxFor(m => m.Email, new { @class = "form-control" })
        </div>
    </div>
    <div class="form-group">
        @Html.LabelFor(m => m.Password, new { @class = "col-md-2 control-label" })
        <div class="col-md-10">
            @Html.PasswordFor(m => m.Password, new { @class = "form-control" })
        </div>
    </div>
    <div class="form-group">
        @Html.LabelFor(m => m.ConfirmPassword, new { @class = "col-md-2 control-label" })
        <div class="col-md-10">
            @Html.PasswordFor(m => m.ConfirmPassword, new { @class = "form-control" })
        </div>
    </div>
    <div class="form-group">
        @Html.LabelFor(m => m.UserPhoto, new { @class = "col-md-2 control-label" })
        <div class="col-md-10">

            <input type="file" name="UserPhoto" id="fileUpload" accept=".png,.jpg,.jpeg,.gif,.tif" />

        </div>
    </div>

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" class="btn btn-default" value="Register" />
        </div>
    </div>
 public async Task<ActionResult> Register([Bind(Exclude = "UserPhoto")]RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                byte[] imageData = null;
                if (Request.Files.Count > 0)
                {
                    HttpPostedFileBase poImgFile = Request.Files["UserPhoto"];

                    using (var binary = new BinaryReader(poImgFile.InputStream))
                    {
                        imageData = binary.ReadBytes(poImgFile.ContentLength);
                    }
                }
                var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
                user.UserPhoto = imageData;
                var result = await UserManager.CreateAsync(user, model.Password);
                if (result.Succeeded)
                {
                    var code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking this link: <a href=\"" + callbackUrl + "\">link</a>");
                    ViewBag.Link = callbackUrl;
                    return View("DisplayEmail");
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return View(model);
        }

ارسال پاسخ برای این تاپیک

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید