Changing Vim editor settings?

vim
135

Solution 1

Edit ~/.vimrc and put these in it:

set autoindent
set tabstop=4
colorscheme default

Note: type :colorscheme and hit Tab in order to find available colorsschemes installed for your Vim .

To use vim as default editor, use this

export EDITOR=/path/to/vim or simply export EDITOR=vim

or you can save this in your rc file

Solution 2

Edit your ~/.vimrc file. If you don't have vimrc file then create new file add following content into it.

  1. touch ~/.vimrc
  2. Paste this :

    " COPY THIS FILE AS .vimrc in home folder.
    " cp vimrc ~/.vimrc
    "
    " .vimrc
    "
    " Smylers's .vimrc
    " http://www.stripey.com/vim/
    " 
    " 2000 Jun  1: for `Vim' 5.6
    " 
    " This vimrc is divided into these sections:
    " 
    " * Terminal Settings
    " * User Interface
    " * Text Formatting -- General
    " * Text Formatting -- Specific File Formats
    " * Search & Replace
    " * Spelling
    " * Keystrokes -- Moving Around
    " * Keystrokes -- Formatting
    " * Keystrokes -- Toggles
    " * Keystrokes -- Insert Mode
    " * Keystrokes -- For HTML Files
    " * `SLRN' Behaviour
    " * Functions Referred to Above
    " 
    " This file contains no control codes and no `top bit set' characters above the
    " normal Ascii range, and all lines contain a maximum of 79 characters.  With a
    " bit of luck, this should make it resilient to being uploaded, downloaded,
    " e-mailed, posted, encoded, decoded, transmitted by morse code, or whatever.
    
    
    " first clear any existing autocommands:
    autocmd!
    
    
    "---" * Terminal Settings
    "---
    "---" `XTerm', `RXVT', `Gnome Terminal', and `Konsole' all claim to be "xterm";
    "---" `KVT' claims to be "xterm-color":
    "---if &term =~ 'xterm'
    "---
    "---  " `Gnome Terminal' fortunately sets $COLORTERM; it needs <BkSpc> and <Del>
    "---  " fixing, and it has a bug which causes spurious "c"s to appear, which can be
    "---  " fixed by unsetting t_RV:
    "---  if $COLORTERM == 'gnome-terminal'
    "---    execute 'set t_kb=' . nr2char(8)
    "---    " [Char 8 is <Ctrl>+H.]
    "---    fixdel
    "---    set t_RV=
    "---
    "---  " `XTerm', `Konsole', and `KVT' all also need <BkSpc> and <Del> fixing;
    "---  " there's no easy way of distinguishing these terminals from other things
    "---  " that claim to be "xterm", but `RXVT' sets $COLORTERM to "rxvt" and these
    "---  " don't:
    "---  elseif $COLORTERM == ''
    "---    execute 'set t_kb=' . nr2char(8)
    "---    fixdel
    "---
    "---  " The above won't work if an `XTerm' or `KVT' is started from within a `Gnome
    "---  " Terminal' or an `RXVT': the $COLORTERM setting will propagate; it's always
    "---  " OK with `Konsole' which explicitly sets $COLORTERM to "".
    "---
    "---  endif
    "---endif
    
    
    " * User Interface
    
    " have syntax highlighting in terminals which can display colours:
    "if has('syntax') && (&t_Co > 2)
    "  syntax on
    "endif
    
    " have fifty lines of command-line (etc) history:
    set history=50
    " remember all of these between sessions, but only 10 search terms; also
    " remember info for 10 files, but never any on removable disks, don't remember
    " marks in files, don't rehighlight old search patterns, and only save up to
    " 100 lines of registers; including @10 in there should restrict input buffer
    " but it causes an error for me:
    set viminfo=/10,'10,r/mnt/zip,r/mnt/floppy,f0,h,\"100
    
    " have command-line completion <Tab> (for filenames, help topics, option names)
    " first list the available options and complete the longest common part, then
    " have further <Tab>s cycle through the possibilities:
    set wildmode=list:longest,full
    
    " use "[RO]" for "[readonly]" to save space in the message line:
    set shortmess+=r
    
    " display the current mode and partially-typed commands in the status line:
    set showmode
    set showcmd
    
    " when using list, keep tabs at their full width and display `arrows':
    execute 'set listchars+=tab:' . nr2char(187) . nr2char(183)
    " (Character 187 is a right double-chevron, and 183 a mid-dot.)
    
    " have the mouse enabled all the time:
    " set mouse=a
    
    " don't have files trying to override this .vimrc:
    set nomodeline
    
    
    " * Text Formatting -- General
    
    " don't make it look like there are line breaks where there aren't:
    set nowrap
    
    " use indents of 2 spaces, and have them copied down lines:
    set shiftwidth=2
    set shiftround
    set expandtab
    set autoindent
    
    " normally don't automatically format `text' as it is typed, IE only do this
    " with comments, at 79 characters:
    set formatoptions-=t
    set textwidth=79
    
    " get rid of the default style of C comments, and define a style with two stars
    " at the start of `middle' rows which (looks nicer and) avoids asterisks used
    " for bullet lists being treated like C comments; then define a bullet list
    " style for single stars (like already is for hyphens):
    set comments-=s1:/*,mb:*,ex:*/
    set comments+=s:/*,mb:**,ex:*/
    set comments+=fb:*
    
    " treat lines starting with a quote mark as comments (for `Vim' files, such as
    " this very one!), and colons as well so that reformatting usenet messages from
    " `Tin' users works OK:
    set comments+=b:\"
    set comments+=n::
    
    
    " * Text Formatting -- Specific File Formats
    
    " enable filetype detection:
    filetype on
    
    " recognize anything in my .Postponed directory as a news article, and anything
    " at all with a .txt extension as being human-language text [this clobbers the
    " `help' filetype, but that doesn't seem to prevent help from working
    " properly]:
    augroup filetype
      autocmd BufNewFile,BufRead */.Postponed/* set filetype=mail
      autocmd BufNewFile,BufRead *.txt set filetype=human
    augroup END
    
    " in human-language files, automatically format everything at 72 chars:
    autocmd FileType mail,human set formatoptions+=t textwidth=72
    
    " for C-like programming, have automatic indentation:
    autocmd FileType c,cpp,slang set cindent
    
    " for actual C (not C++) programming where comments have explicit end
    " characters, if starting a new line in the middle of a comment automatically
    " insert the comment leader characters:
    autocmd FileType c set formatoptions+=ro
    
    " for Perl programming, have things in braces indenting themselves:
    autocmd FileType perl set smartindent
    
    " for CSS, also have things in braces indented:
    autocmd FileType css set smartindent
    
    " for HTML, generally format text, but if a long line has been created leave it
    " alone when editing:
    autocmd FileType html set formatoptions+=tl
    
    " for both CSS and HTML, use genuine tab characters for indentation, to make
    " files a few bytes smaller:
    autocmd FileType html,css set noexpandtab tabstop=2
    
    " in makefiles, don't expand tabs to spaces, since actual tab characters are
    " needed, and have indentation at 8 chars to be sure that all indents are tabs
    " (despite the mappings later):
    autocmd FileType make set noexpandtab shiftwidth=8
    
    
    " * Search & Replace
    
    " make searches case-insensitive, unless they contain upper-case letters:
    set ignorecase
    set smartcase
    
    " show the `best match so far' as search strings are typed:
    set incsearch
    
    " assume the /g flag on :s substitutions to replace all matches in a line:
    set gdefault
    
    
    " * Keystrokes -- Moving Around
    
    " have the h and l cursor keys wrap between lines (like <Space> and <BkSpc> do
    " by default), and ~ covert case over line breaks; also have the cursor keys
    " wrap in insert mode:
    set whichwrap=h,l,~,[,]
    
    " page down with <Space> (like in `Lynx', `Mutt', `Pine', `Netscape Navigator',
    " `SLRN', `Less', and `More'); page up with - (like in `Lynx', `Mutt', `Pine'),
    " or <BkSpc> (like in `Netscape Navigator'):
    noremap <Space> <PageDown>
    noremap <BS> <PageUp>
    noremap - <PageUp>
    " [<Space> by default is like l, <BkSpc> like h, and - like k.]
    
    " scroll the window (but leaving the cursor in the same place) by a couple of
    " lines up/down with <Ins>/<Del> (like in `Lynx'):
    noremap <Ins> 2<C-Y>
    noremap <Del> 2<C-E>
    " [<Ins> by default is like i, and <Del> like x.]
    
    " use <F6> to cycle through split windows (and <Shift>+<F6> to cycle backwards,
    " where possible):
    nnoremap <F6> <C-W>w
    nnoremap <S-F6> <C-W>W
    
    " use <Ctrl>+N/<Ctrl>+P to cycle through files:
    nnoremap <C-N> :next<CR>
    nnoremap <C-P> :prev<CR>
    " [<Ctrl>+N by default is like j, and <Ctrl>+P like k.]
    
    " have % bounce between angled brackets, as well as t'other kinds:
    set matchpairs+=<:>
    
    " have <F1> prompt for a help topic, rather than displaying the introduction
    " page, and have it do this from any mode:
    nnoremap <F1> :help<Space>
    vmap <F1> <C-C><F1>
    omap <F1> <C-C><F1>
    map! <F1> <C-C><F1>
    
    
    " * Keystrokes -- Formatting
    
    " have Q reformat the current paragraph (or selected text if there is any):
    nnoremap Q gqap
    vnoremap Q gq
    
    " have the usual indentation keystrokes still work in visual mode:
    vnoremap <C-T> >
    vnoremap <C-D> <LT>
    vmap <Tab> <C-T>
    vmap <S-Tab> <C-D>
    
    " have Y behave analogously to D and C rather than to dd and cc (which is
    " already done by yy):
    noremap Y y$
    
    
    " * Keystrokes -- Toggles
    
    " Keystrokes to toggle options are defined here.  They are all set to normal
    " mode keystrokes beginning \t but some function keys (which won't work in all
    " terminals) are also mapped.
    
    " have \tp ("toggle paste") toggle paste on/off and report the change, and
    " where possible also have <F4> do this both in normal and insert mode:
    nnoremap \tp :set invpaste paste?<CR>
    nmap <F4> \tp
    imap <F4> <C-O>\tp
    set pastetoggle=<F4>
    
    "" have \tf ("toggle format") toggle the automatic insertion of line breaks
    "" during typing and report the change:
    "nnoremap \tf :if &fo =~ 't' <Bar> set fo-=t <Bar> else <Bar> set fo+=t <Bar>
    "  \ endif <Bar> set fo?<CR>
    "nmap <F3> \tf
    "imap <F3> <C-O>\tf
    "
    " have \tl ("toggle list") toggle list on/off and report the change:
    nnoremap \tl :set invlist list?<CR>
    nmap <F2> \tl
    
    " have \th ("toggle highlight") toggle highlighting of search matches, and
    " report the change:
    nnoremap \th :set invhls hls?<CR>
    
    
    " * Keystrokes -- Insert Mode
    
    " allow <BkSpc> to delete line breaks, beyond the start of the current
    " insertion, and over indentations:
    set backspace=eol,start,indent
    
    " have <Tab> (and <Shift>+<Tab> where it works) change the level of
    " indentation:
    inoremap <Tab> <C-T>
    inoremap <S-Tab> <C-D>
    " [<Ctrl>+V <Tab> still inserts an actual tab character.]
    
    syntax on
    

  1. Press Esc
  2. type :wq That's it!

Solution 3

Put these settings in ~/.vimrc. For more information, type

:help vimrc-intro

from within vim.

Share:
135

Related videos on Youtube

Niels Savant
Author by

Niels Savant

Updated on September 18, 2022

Comments

  • Niels Savant
    Niels Savant over 1 year

    I have this:

    View:

    @model ContosoUniversity.Models.UserProfile
    @{
        ViewBag.Title = "Edit";
    }
    
    <h2>EDIT</h2>
    
    
    <div id="tabs">
    
        <ul>
            <li><a href="#tabs-1">Personal information</a></li>
            <li><a href="#tabs-2">Photos</a></li>
            <li><a href="#tabs-3">The Bike</a></li>
        </ul>
    
        <div id="tabs-1">
    
    
            @using (Html.BeginForm("Edit", "Account", FormMethod.Post, new { enctype = "multipart/form-data" }))
            {
                @Html.AntiForgeryToken()
    
                <div class="form-horizontal">
                    <h4>Lola Biker</h4>
                    <hr />
                    @Html.ValidationSummary(true)
                    @Html.HiddenFor(model => model.Id)
    
    
    
                    <form class="form-horizontal">
    
                        @Html.ActionLink("Change your password", "Manage")
    
    
                        <div class="form-group">
                            @Html.LabelFor(m => m.UserName, new { @class = "control-label col-xs-2" })
                            @Html.TextBoxFor(m => m.UserName, new { @class = "form-control", style = "width: 250px;" })
                        </div>
    
    
    
                        <div class="form-group">
                            @Html.LabelFor(m => m.Email, new { @class = "control-label col-xs-2" })
                            @Html.TextBoxFor(m => m.Email, new { @class = "form-control", style = "width: 250px;" })
                        </div>
    
                        <div class="form-group ">
                            @Html.LabelFor(m => m.FirstName, new { @class = "control-label col-xs-2" })
                            @Html.TextBoxFor(m => m.FirstName, new { @class = "form-control", style = "width: 250px;" })
                        </div>
    
                        <div class=" form-group">
                            @Html.LabelFor(m => m.LastName, new { @class = "control-label col-xs-2" })
                            @Html.TextBoxFor(m => m.LastName, new { @class = "form-control", style = "width: 250px;" })
                        </div>
    
                        <div class="form-group">
                            @Html.LabelFor(m => m.Motto, new { @class = "control-label col-xs-2" })
                            @Html.TextAreaFor(m => m.Motto, new { @class = "form-control", style = "width: 250px;" })
                        </div>
    
                        <div class="form-group">
    
                            @Html.LabelFor(m => m.PlaceOfBirth, new { @class = "control-label col-xs-2" })
                            @Html.TextBoxFor(m => m.PlaceOfBirth, new { @class = "form-control", style = "width: 250px;" })
                        </div>
                        <div class="form-group">
    
                            @Html.LabelFor(m => m.HowManyBikes, new { @class = "control-label col-xs-2" })
                            @Html.TextBoxFor(m => m.HowManyBikes, new { @class = "form-control", style = "width: 250px;" })
                        </div>
                        <div class="form-group">
                            @Html.LabelFor(m => m.BesideYourBeth, new { @class = "control-label col-xs-2" })
                            @Html.TextBoxFor(m => m.BesideYourBeth, new { @class = "form-control", style = "width: 250px;" })
                        </div>
                        <div class="form-group">
                            @Html.LabelFor(m => m.NicestRide, new { @class = "control-label col-xs-2" })
                            @Html.TextBoxFor(m => m.NicestRide, new { @class = "form-control", style = "width: 250px;" })
                        </div>
    
                        <div class="form-group">
                            @Html.LabelFor(m => m.WorstRide, new { @class = "control-label col-xs-2" })
                            @Html.TextBoxFor(m => m.WorstRide, new { @class = "form-control", style = "width: 250px;" })
                        </div>
    
                        <div class="form-group">
                            @Html.LabelFor(m => m.AmountKmPerYear, new { @class = "control-label col-xs-2" })
                            @Html.TextBoxFor(m => m.AmountKmPerYear, new { @class = "form-control", style = "width: 250px;" })
                        </div>
    
                        <div class="form-group">
                            @Html.LabelFor(m => m.AverageSpeed, new { @class = "control-label col-xs-2" })
                            @Html.TextBoxFor(m => m.AverageSpeed, new { @class = "form-control", style = "width: 250px;" })
                        </div>
    
                        <div class="form-group">
                            @Html.LabelFor(m => m.AbleToChatWhileRiding, new { @class = "control-label col-xs-2" })
                            @Html.TextBoxFor(m => m.AbleToChatWhileRiding, new { @class = "form-control", style = "width: 250px;" })
                        </div>
    
                        <div class="form-group">
                            @Html.LabelFor(m => m.PhoneNumber, new { @class = "control-label col-xs-2" })
                            @Html.TextBoxFor(m => m.PhoneNumber, new { @class = "form-control", style = "width: 250px;" })
                        </div>
    
    
    
    
                    </form>
    
    
                    <br />
    
    
                    <div class="pull-left">
                        <div class="col-md-offset-0">
                            <input type="submit" value="Save" class="btn btn-default pull-left" />
    
                        </div>
                    </div>
                </div>
            }
    
            <br /><br />
            <div>
                @Html.ActionLink("Back to List", "Index")
            </div>
    
    
    
    
        </div>
    
        <div id="tabs-2">
            <div id="tabs-2">
                @using (Ajax.BeginForm("EditPhotos", "Account", new AjaxOptions() { HttpMethod = "POST" }, new { enctype = "multipart/form-data" } ))
    
                //new { enctype = "multipart/form-data" }))
                {
                    @Html.AntiForgeryToken()
    
                    <div class="form-horizontal">
                        <h4>Photos</h4>
                        <hr />
    
                        @Html.HiddenFor(model => model.Id)
                        <form class="form-horizontal">
    
                            <div class="editor-label">
                                @Html.LabelFor(model => model.DisplayItem)
                            </div>
                            <div class="editor-field">
                                @Html.EditorFor(model => model.DisplayItem)
    
                            </div>
    
                            <div id="upload-choices">
                                <div class="editor-label">
                                    @Html.LabelFor(m => m.Image)
    
                                    @Html.ValidationMessageFor(model => model.Image)
                                </div>
                                <div class="editor-row">
                                    @Html.ValidationSummary(true)
                                </div>
                            </div>
    
                            <br />
    
                            <div class="table-responsive">
                                <table class="table">
    
                                    <tr>
                                        <th><img width="200" height="150" src="@Url.Action("GetImage", "Account", new { id = Model.Id })"></th>
    
    
                                    </tr>
                                </table>
                            </div>
    
                            <input type="file" name="file" class="filestyle" data-buttontext="Find file">
    
    
                        </form>
    
                        <br />
                        <div class="progress progress-striped">
                            <div class="progress-bar progress-bar-success">0%</div>
                        </div>
    
                        <div id="status"></div>
    
    
                        <br />
    
                        @*@Html.ActionLink("Upload photos", "Upload")*@
                        <div class="pull-left">
                            <div class="col-md-offset-0">
                                <input type="submit" value="Save" id="Id" class="btn btn-default pull-left" />
    
                            </div>
                        </div>
    
                    </div>
                }
    
                <br /><br />
                <div>
                    @Html.ActionLink("Back to List", "Index")
                </div>
    
            </div>
    
        <div id="tabs-3">
            Content for Tab 3 goes here.<br />
            Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
            sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
        </div>
    
    </div>
        </div>
    
    
    
    
    <br /><br />
    <div>
        @Html.ActionLink("Back to List", "Index")
    </div>
    
    @section Scripts
    {
        <link href="@Url.Content("~/Content/themes/base/jquery-ui.css")" rel="stylesheet" type="text/css" />
        <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />   
        <script src="@Url.Content("~/Scripts/jquery-1.11.0.min.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery.form.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery-ui-1.10.4.min.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/bootstrap-filestyle.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery.form.min.js")" type="text/javascript"></script>
    
        <script>
    
            $(document).ready(function () {
    
                    $("#tabs").tabs();
                //    $(document).on("click", ".btn", function () {
                //        $("#tabs").tabs("select", window.location.hash);
    
                //        $(":file").filestyle({ size: "sm" });
                //        $(":file").filestyle({ buttonText: "Find file" });              
                //});
            });
    
            $(document).ready(function () {
    
                var bar = $('.progress-bar');
                var percent = $('.progress-bar');
                var status = $('#status');
    
                $('form').ajaxForm({
                    beforeSend: function () {
                        status.empty();
                        var percentVal = '0%';
                        bar.width(percentVal)
                        percent.html(percentVal);
                    },
                    uploadProgress: function (event, position, total, percentComplete) {
                        var percentVal = percentComplete + '%';
                        bar.width(percentVal)
                        percent.html(percentVal);
                    },
                    success: function () {
                        var percentVal = '100%';
                        bar.width(percentVal)
                        percent.html(percentVal);
                    },
                    complete: function (xhr) {
                        status.html(xhr.responseText);
                    }
                });
    
            })();       
        </script>
    }
    

    and controller action:

    [HttpPost]
            public ActionResult EditPhotos(UserProfile userprofile,HttpPostedFileBase file)
            {
    
                if (file != null && file.ContentLength > 0)
                {
    
    
                    // extract only the fielname
                    var fileName = Path.GetFileName(file.FileName);
                    // store the file inside ~/App_Data/uploads folder
                    var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
                    file.SaveAs(path);
                }
    
                 if (ModelState.IsValid)
                 {
                     string username = User.Identity.Name;
                    // Get the userprofile
                    UserProfile user = db.userProfiles.FirstOrDefault(u => u.UserName.Equals(username));
    
                    // Update fields
                    user.Image = new byte[file.ContentLength];
                    file.InputStream.Read(user.Image, 0, file.ContentLength);
                    user.ImageMimeType = file.ContentType;
    
                    db.Entry(user).State = EntityState.Modified;
    
                    db.SaveChanges();
    
                    return Redirect(Url.Action("Edit", "Account") + "#tabs-2");
    
                 }
                return PartialView(userprofile);       
    
            }
    

    it goes about tab2

    but after I put on save, the view was rendering two times, so I put a breakpoint on this line:

    user.Image = new byte[file.ContentLength];, I get the messagee:

    An exception of type 'System.NullReferenceException' occurred in ContosoUniversity.dll but was not handled in user code
    
    Additional information: Object reference not set to an instance of an object. file = null
    

    but if I after continue, then it loops again and saves the file to database. But so the first time is file = null, but if I continue the file is saved, but also the view is now showing correctly after saving the image.

    Thank you

    Before uploading

    enter image description here

    after uploading:

    enter image description here

    oke, I made it minimal. See this:

    View:

    @model ContosoUniversity.Models.UserProfile
    @{
        ViewBag.Title = "Edit";
    }
    
    <h2>EDIT</h2>
    
                @using (Html.BeginForm("EditPhotos", "Account", FormMethod.Post))
                {
                    @Html.AntiForgeryToken()
                    <input type="file" name="file"><br>
                    <input type="submit"  value="Upload File to Server">
                }
    
    <div class="progress progress-striped">
        <div class="progress-bar progress-bar-success">0%</div>
    </div>
    
    <div id="status"></div>
    
                <br /><br />
                <div>
                    @Html.ActionLink("Back to List", "Index")
                </div>
    
    <br /><br />
    <div>
        @Html.ActionLink("Back to List", "Index")
    </div>
    
    @section Scripts
    {
        <link href="@Url.Content("~/Content/themes/base/jquery-ui.css")" rel="stylesheet" type="text/css" />
        <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />   
        <script src="@Url.Content("~/Scripts/jquery-1.11.0.min.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery.form.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery-ui-1.10.4.min.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/bootstrap-filestyle.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery.form.min.js")" type="text/javascript"></script>
    
        <script>
    
    
    
            $(document).ready(function () {
    
    
                var bar = $('.progress-bar');
                var percent = $('.progress-bar');
                var status = $('#status')
    
    
    
                $('form').ajaxForm({
    
    
                    beforeSend: function () {
                        status.empty();
                        var percentVal = '0%';
                        bar.width(percentVal)
                        percent.html(percentVal);
                    },
                    uploadProgress: function (event, position, total, percentComplete) {
                        var percentVal = percentComplete + '%';
                        bar.width(percentVal)
                        percent.html(percentVal);
                    },
                    success: function () {
                        var percentVal = '100%';
                        bar.width(percentVal)
                        percent.html(percentVal);
                    },
                    complete: function (xhr) {
                        status.html(xhr.responseText);
                    }
                });
    
            })();       
        </script>
    }
    

    Controller action:

     [HttpPost]
            [ValidateAntiForgeryToken]
            public ActionResult EditPhotos(UserProfile userprofile,HttpPostedFileBase file)
            {
    
                if (file != null)
                {
    
    
                    // extract only the fielname
                    var fileName = Path.GetFileName(file.FileName);
                    // store the file inside ~/App_Data/uploads folder
                    var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
                    file.SaveAs(path);
                }
    
                 if (ModelState.IsValid)
                 {
                     string username = User.Identity.Name;
                    // Get the userprofile
                    UserProfile user = db.userProfiles.FirstOrDefault(u => u.UserName.Equals(username));
    
                    // Update fields
                    user.Image = new byte[file.ContentLength];
                    file.InputStream.Read(user.Image, 0, file.ContentLength);
                    user.ImageMimeType = file.ContentType;
    
                    db.Entry(user).State = EntityState.Modified;
    
                    db.SaveChanges();
    
                    return Redirect(Url.Action("Edit", "Account"));
    
                 }
                return View(userprofile);       
    
            }
    

    but still it looks like this, after uploading image:

    enter image description here

    • Admin
      Admin about 11 years
      I suggest you ask the second question as a separate question. Better yet, Google for its answer first.